diff --git a/.DS_Store b/.DS_Store deleted file mode 100644 index 71a2b76..0000000 Binary files a/.DS_Store and /dev/null differ diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..fc6699d --- /dev/null +++ b/.gitattributes @@ -0,0 +1,5 @@ +*.mp3 filter=lfs diff=lfs merge=lfs -text +*.wav filter=lfs diff=lfs merge=lfs -text +*.gltf filter=lfs diff=lfs merge=lfs -text +*.glb filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 0000000..f1f2025 --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1 @@ +github: floffah \ No newline at end of file diff --git a/.github/workflows/deploy-docs.yml b/.github/workflows/deploy-docs.yml new file mode 100644 index 0000000..033fe97 --- /dev/null +++ b/.github/workflows/deploy-docs.yml @@ -0,0 +1,68 @@ +# Sample workflow for building and deploying a VitePress site to GitHub Pages +# +name: Deploy VitePress site to Pages + +on: + # Runs on pushes targeting the `main` branch. Change this to `master` if you're + # using the `master` branch as the default branch. + push: + branches: [main] + paths: + - 'docs/**' + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages +permissions: + contents: read + pages: write + id-token: write + +# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. +# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. +concurrency: + group: pages + cancel-in-progress: false + +jobs: + # Build job + build: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 # Not needed if lastUpdated is not enabled + # - uses: pnpm/action-setup@v3 # Uncomment this block if you're using pnpm + # with: + # version: 9 # Not needed if you've set "packageManager" in package.json + - uses: oven-sh/setup-bun@v1 # Uncomment this if you're using Bun + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: 22 + cache: npm # or pnpm / yarn + - name: Setup Pages + uses: actions/configure-pages@v4 + - name: Install dependencies + run: bun install # or pnpm install / yarn install / bun install + - name: Build with VitePress + run: bun run docs:build # or pnpm docs:build / yarn docs:build / bun run docs:build + - name: Upload artifact + uses: actions/upload-pages-artifact@v3 + with: + path: docs/.vitepress/dist + + # Deployment job + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + needs: build + runs-on: ubuntu-latest + name: Deploy + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 \ No newline at end of file diff --git a/.github/workflows/godot-ci.yml b/.github/workflows/godot-ci.yml index 94bbdc7..7c087fd 100644 --- a/.github/workflows/godot-ci.yml +++ b/.github/workflows/godot-ci.yml @@ -3,9 +3,13 @@ on: push: branches: - main + paths: + - 'game/**' pull_request: branches: - main + paths: + - 'game/**' # NOTE: If your `project.godot` is at the repository root, set `PROJECT_PATH` below to ".". diff --git a/.npmrc b/.npmrc new file mode 100644 index 0000000..eeff6a6 --- /dev/null +++ b/.npmrc @@ -0,0 +1,5 @@ +public-hoist-pattern[]=@braintree/sanitize-url +public-hoist-pattern[]=dayjs +public-hoist-pattern[]=debug +public-hoist-pattern[]=cytoscape-cose-bilkent +public-hoist-pattern[]=cytoscape \ No newline at end of file diff --git a/README.md b/README.md index e51fe24..1171267 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,9 @@ See [`LICENSE`](./LICENSE) for full terms. My attempt at making an MMO game using Godot and Bun. +> [!NOTE] +> I am looking for artists to help out with graphics & 3d art 🙂, email echoform@ramdta.com if interested + Packages: - [backend](./backend) - (Bun) The authoritative server for the game. Manages player profiles, load balancing, and realtime diff --git a/backend/.gitignore b/backend/.gitignore index 6f51d86..7d8966f 100644 --- a/backend/.gitignore +++ b/backend/.gitignore @@ -1,4 +1,4 @@ -.vitepress +.vitepress/cache # dependencies (bun install) node_modules diff --git a/backend/docs/markdown-examples.md b/backend/docs/markdown-examples.md deleted file mode 100644 index f9258a5..0000000 --- a/backend/docs/markdown-examples.md +++ /dev/null @@ -1,85 +0,0 @@ -# Markdown Extension Examples - -This page demonstrates some of the built-in markdown extensions provided by VitePress. - -## Syntax Highlighting - -VitePress provides Syntax Highlighting powered by [Shiki](https://github.com/shikijs/shiki), with additional features like line-highlighting: - -**Input** - -````md -```js{4} -export default { - data () { - return { - msg: 'Highlighted!' - } - } -} -``` -```` - -**Output** - -```js{4} -export default { - data () { - return { - msg: 'Highlighted!' - } - } -} -``` - -## Custom Containers - -**Input** - -```md -::: info -This is an info box. -::: - -::: tip -This is a tip. -::: - -::: warning -This is a warning. -::: - -::: danger -This is a dangerous warning. -::: - -::: details -This is a details block. -::: -``` - -**Output** - -::: info -This is an info box. -::: - -::: tip -This is a tip. -::: - -::: warning -This is a warning. -::: - -::: danger -This is a dangerous warning. -::: - -::: details -This is a details block. -::: - -## More - -Check out the documentation for the [full list of markdown extensions](https://vitepress.dev/guide/markdown). diff --git a/backend/package.json b/backend/package.json index 7acb3f2..983dba6 100644 --- a/backend/package.json +++ b/backend/package.json @@ -15,10 +15,7 @@ "db:generate": "bunx drizzle-kit generate", "db:migrate": "bun run scripts/migrate.ts", "db:seed": "bun run scripts/seed.ts", - "codegen:asyncapi": "bun run scripts/asyncapi.ts", - "docs:dev": "vitepress dev docs", - "docs:build": "vitepress build docs", - "docs:preview": "vitepress preview docs" + "codegen:asyncapi": "bun run scripts/asyncapi.ts" }, "dependencies": { "@hono/standard-validator": "^0.1.5", @@ -28,7 +25,7 @@ "@scalar/hono-api-reference": "^0.9.22", "date-fns": "^4.1.0", "drizzle-orm": "^0.44.7", - "hono": "^4.10.2", + "hono": "^4.10.4", "hono-openapi": "^1.1.0", "nanoid": "^5.1.6", "pino": "^10.1.0", @@ -37,7 +34,7 @@ "zod-openapi": "^5.4.3" }, "devDependencies": { - "@asyncapi/cli": "^4.0.0", + "@asyncapi/cli": "^4.1.0", "@asyncapi/optimizer": "^1.0.4", "@eslint/js": "^9.38.0", "@trivago/prettier-plugin-sort-imports": "^5.2.2", @@ -46,16 +43,13 @@ "bonjour-service": "^1.3.0", "chalk": "^5.6.2", "chalk-template": "^1.1.2", - "drizzle-kit": "^0.31.5", + "drizzle-kit": "^0.31.6", "eslint": "^9.38.0", - "mermaid": "^11.12.0", - "npm-check-updates": "^19.1.1", + "npm-check-updates": "^19.1.2", "prettier": "^3.6.2", "typed-emitter": "^2.1.0", "typescript": "^5.9.3", "typescript-eslint": "^8.46.2", - "vitepress": "^1.6.4", - "vitepress-plugin-mermaid": "^2.0.17", "zod-to-json-schema": "^3.24.6" }, "packageManager": "bun@1.3.1" diff --git a/bun.lock b/bun.lock index c4dc843..a15f696 100644 --- a/bun.lock +++ b/bun.lock @@ -4,7 +4,17 @@ "": { "name": "echoform", "devDependencies": { + "mermaid": "^11.12.0", "turbo": "^2.5.8", + "vitepress": "^1.6.4", + "vitepress-plugin-mermaid": "^2.0.17", + }, + "optionalDependencies": { + "@braintree/sanitize-url": "^7.1.1", + "cytoscape": "^3.33.1", + "cytoscape-cose-bilkent": "^4.1.0", + "dayjs": "^1.11.18", + "debug": "^4.4.3", }, }, "backend": { @@ -18,7 +28,7 @@ "@scalar/hono-api-reference": "^0.9.22", "date-fns": "^4.1.0", "drizzle-orm": "^0.44.7", - "hono": "^4.10.2", + "hono": "^4.10.3", "hono-openapi": "^1.1.0", "nanoid": "^5.1.6", "pino": "^10.1.0", @@ -27,7 +37,7 @@ "zod-openapi": "^5.4.3", }, "devDependencies": { - "@asyncapi/cli": "^4.0.0", + "@asyncapi/cli": "^4.1.0", "@asyncapi/optimizer": "^1.0.4", "@eslint/js": "^9.38.0", "@trivago/prettier-plugin-sort-imports": "^5.2.2", @@ -36,16 +46,13 @@ "bonjour-service": "^1.3.0", "chalk": "^5.6.2", "chalk-template": "^1.1.2", - "drizzle-kit": "^0.31.5", + "drizzle-kit": "^0.31.6", "eslint": "^9.38.0", - "mermaid": "^11.12.0", - "npm-check-updates": "^19.1.1", + "npm-check-updates": "^19.1.2", "prettier": "^3.6.2", "typed-emitter": "^2.1.0", "typescript": "^5.9.3", "typescript-eslint": "^8.46.2", - "vitepress": "^1.6.4", - "vitepress-plugin-mermaid": "^2.0.17", "zod-to-json-schema": "^3.24.6", }, }, @@ -117,7 +124,7 @@ "@asyncapi/bundler": ["@asyncapi/bundler@0.6.4", "", { "dependencies": { "@apidevtools/json-schema-ref-parser": "^11.5.4", "@types/json-schema": "^7.0.11", "@ungap/structured-clone": "^1.2.0", "js-yaml": "^4.1.0", "lodash": "^4.17.21" } }, "sha512-lKZo2FF2TKt4n6Qm8vP/JOEEGE04gdH/D9oHmBt/NfOylMaw8XoFsI+k+IJyzpVMzREjZfxGf9gNzfW0CWRf5g=="], - "@asyncapi/cli": ["@asyncapi/cli@4.0.0", "", { "dependencies": { "@asyncapi/avro-schema-parser": "^3.0.23", "@asyncapi/bundler": "^0.6.4", "@asyncapi/converter": "^1.6.2", "@asyncapi/diff": "^0.5.0", "@asyncapi/generator": "^1.17.25", "@asyncapi/modelina-cli": "^4.0.4", "@asyncapi/openapi-schema-parser": "^3.0.24", "@asyncapi/optimizer": "^1.0.4", "@asyncapi/parser": "^3.3.0", "@asyncapi/problem": "^1.0.0", "@asyncapi/protobuf-schema-parser": "^3.6.0", "@asyncapi/raml-dt-schema-parser": "^4.0.24", "@asyncapi/studio": "^0.24.2", "@changesets/changelog-git": "^0.2.0", "@clack/prompts": "^0.7.0", "@oclif/core": "^4.2.9", "@oclif/plugin-autocomplete": "^3.2.26", "@smoya/asyncapi-adoption-metrics": "^2.4.9", "@stoplight/spectral-cli": "6.9.0", "archiver": "^7.0.1", "body-parser": "^2.2.0", "chalk": "^4.1.0", "chokidar": "^3.5.2", "compression": "^1.8.0", "config": "^4.0.0", "cors": "^2.8.5", "express": "^4.17.1", "fast-levenshtein": "^3.0.0", "fs-extra": "^11.1.0", "generator-v2": "npm:@asyncapi/generator@2.8.3", "helmet": "^8.1.0", "https-proxy-agent": "^7.0.6", "inquirer": "^8.2.0", "js-yaml": "^4.1.0", "next": "^15.2.4", "oclif": "^4.17.34", "open": "^8.4.0", "picocolors": "^1.1.0", "redoc-express": "^2.1.0", "unzipper": "^0.10.11", "uuid": "^11.1.0", "winston": "^3.17.0", "ws": "^8.2.3", "yaml": "^2.6.1" }, "optionalDependencies": { "fsevents": "^2.3.2" }, "bin": { "asyncapi": "bin/run_bin" } }, "sha512-0mKq2tHBZIXOxvkrgLbVPTUt9Yz+lzXHfSJxBAXyDNGGWhX5HyryqLItOTCxbGRDPueI7WXJx7WJhdvsx0EsSw=="], + "@asyncapi/cli": ["@asyncapi/cli@4.1.0", "", { "dependencies": { "@asyncapi/avro-schema-parser": "^3.0.23", "@asyncapi/bundler": "^0.6.4", "@asyncapi/converter": "^1.6.2", "@asyncapi/diff": "^0.5.0", "@asyncapi/generator": "^1.17.25", "@asyncapi/modelina-cli": "^4.0.4", "@asyncapi/openapi-schema-parser": "^3.0.24", "@asyncapi/optimizer": "^1.0.4", "@asyncapi/parser": "^3.3.0", "@asyncapi/problem": "^1.0.0", "@asyncapi/protobuf-schema-parser": "^3.6.0", "@asyncapi/raml-dt-schema-parser": "^4.0.24", "@asyncapi/studio": "^0.24.2", "@changesets/changelog-git": "^0.2.0", "@clack/prompts": "^0.7.0", "@oclif/core": "^4.2.9", "@oclif/plugin-autocomplete": "^3.2.26", "@smoya/asyncapi-adoption-metrics": "^2.4.9", "@stoplight/spectral-cli": "6.9.0", "archiver": "^7.0.1", "body-parser": "^2.2.0", "chalk": "^4.1.0", "chokidar": "^3.5.2", "compression": "^1.8.0", "config": "^4.0.0", "cors": "^2.8.5", "express": "^4.17.1", "fast-levenshtein": "^3.0.0", "fs-extra": "^11.1.0", "generator-v2": "npm:@asyncapi/generator@2.8.3", "helmet": "^8.1.0", "https-proxy-agent": "^7.0.6", "inquirer": "^8.2.0", "js-yaml": "^4.1.0", "next": "^15.2.4", "oclif": "^4.17.34", "open": "^8.4.0", "picocolors": "^1.1.0", "redoc-express": "^2.1.0", "unzipper": "^0.10.11", "uuid": "^11.1.0", "winston": "^3.17.0", "ws": "^8.2.3", "yaml": "^2.6.1" }, "optionalDependencies": { "fsevents": "^2.3.2" }, "bin": { "asyncapi": "bin/run_bin" } }, "sha512-HmZmN3Enx6oFxdCjkT3zopHDieD+TH/H9XGWEzgxLe18ONl/y7vPnfMQFX1VaT3vxF8jMXag+Lwm60/r4myvYA=="], "@asyncapi/converter": ["@asyncapi/converter@1.6.2", "", { "dependencies": { "@asyncapi/parser": "^3.1.0", "js-yaml": "^3.14.1", "path": "^0.12.7", "postman2openapi": "^1.2.1" } }, "sha512-tnI6SdRGT5AYJA11JPU9edTSyRujRTZWQ2j9mvG47pXGHMaw4H5biDPeJzQux1FQ/uNSq260otJ5ONpWtbuHMg=="], @@ -1515,7 +1522,7 @@ "chalk-template": ["chalk-template@1.1.2", "", { "dependencies": { "chalk": "^5.2.0" } }, "sha512-2bxTP2yUH7AJj/VAXfcA+4IcWGdQ87HwBANLt5XxGTeomo8yG0y95N1um9i5StvhT/Bl0/2cARA5v1PpPXUxUA=="], - "change-case": ["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.0.3" } }, "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A=="], + "change-case": ["change-case@5.4.4", "", {}, "sha512-HRQyTk2/YPEkt9TnUPbOpr64Uw3KOicFWPVBb+xiHvd6eBx/qPr9xqfBFDT8P2vWsvvz4jbEkfDe71W3VyNu2w=="], "character-entities-html4": ["character-entities-html4@2.1.0", "", {}, "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA=="], @@ -1573,7 +1580,7 @@ "comma-separated-tokens": ["comma-separated-tokens@2.0.3", "", {}, "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg=="], - "commander": ["commander@6.2.1", "", {}, "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA=="], + "commander": ["commander@8.3.0", "", {}, "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww=="], "common-ancestor-path": ["common-ancestor-path@1.0.1", "", {}, "sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w=="], @@ -1789,7 +1796,7 @@ "driver.js": ["driver.js@1.3.6", "", {}, "sha512-g2nNuu+tWmPpuoyk3ffpT9vKhjPz4NrJzq6mkRDZIwXCrFhrKdDJ9TX5tJOBpvCTBrBYjgRQ17XlcQB15q4gMg=="], - "drizzle-kit": ["drizzle-kit@0.31.5", "", { "dependencies": { "@drizzle-team/brocli": "^0.10.2", "@esbuild-kit/esm-loader": "^2.5.5", "esbuild": "^0.25.4", "esbuild-register": "^3.5.0" }, "bin": { "drizzle-kit": "bin.cjs" } }, "sha512-+CHgPFzuoTQTt7cOYCV6MOw2w8vqEn/ap1yv4bpZOWL03u7rlVRQhUY0WYT3rHsgVTXwYQDZaSUJSQrMBUKuWg=="], + "drizzle-kit": ["drizzle-kit@0.31.6", "", { "dependencies": { "@drizzle-team/brocli": "^0.10.2", "@esbuild-kit/esm-loader": "^2.5.5", "esbuild": "^0.25.4", "esbuild-register": "^3.5.0" }, "bin": { "drizzle-kit": "bin.cjs" } }, "sha512-/B4e/4pwnx25QwD5xXgdpo1S+077a2VZdosXbItE/oNmUgQwZydGDz9qJYmnQl/b+5IX0rLfwRhrPnroGtrg8Q=="], "drizzle-orm": ["drizzle-orm@0.44.7", "", { "peerDependencies": { "@aws-sdk/client-rds-data": ">=3", "@cloudflare/workers-types": ">=4", "@electric-sql/pglite": ">=0.2.0", "@libsql/client": ">=0.10.0", "@libsql/client-wasm": ">=0.10.0", "@neondatabase/serverless": ">=0.10.0", "@op-engineering/op-sqlite": ">=2", "@opentelemetry/api": "^1.4.1", "@planetscale/database": ">=1.13", "@prisma/client": "*", "@tidbcloud/serverless": "*", "@types/better-sqlite3": "*", "@types/pg": "*", "@types/sql.js": "*", "@upstash/redis": ">=1.34.7", "@vercel/postgres": ">=0.8.0", "@xata.io/client": "*", "better-sqlite3": ">=7", "bun-types": "*", "expo-sqlite": ">=14.0.0", "gel": ">=2", "knex": "*", "kysely": "*", "mysql2": ">=2", "pg": ">=8", "postgres": ">=3", "sql.js": ">=1", "sqlite3": ">=5" }, "optionalPeers": ["@aws-sdk/client-rds-data", "@cloudflare/workers-types", "@electric-sql/pglite", "@libsql/client", "@libsql/client-wasm", "@neondatabase/serverless", "@op-engineering/op-sqlite", "@opentelemetry/api", "@planetscale/database", "@prisma/client", "@tidbcloud/serverless", "@types/better-sqlite3", "@types/pg", "@types/sql.js", "@upstash/redis", "@vercel/postgres", "@xata.io/client", "better-sqlite3", "bun-types", "expo-sqlite", "gel", "knex", "kysely", "mysql2", "pg", "postgres", "sql.js", "sqlite3"] }, "sha512-quIpnYznjU9lHshEOAYLoZ9s3jweleHlZIAWR/jX9gAWNg/JhQ1wj0KGRf7/Zm+obRrYd9GjPVJg790QY9N5AQ=="], @@ -2019,7 +2026,7 @@ "global-dirs": ["global-dirs@3.0.1", "", { "dependencies": { "ini": "2.0.0" } }, "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA=="], - "globals": ["globals@14.0.0", "", {}, "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ=="], + "globals": ["globals@15.15.0", "", {}, "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg=="], "globalthis": ["globalthis@1.0.4", "", { "dependencies": { "define-properties": "^1.2.1", "gopd": "^1.0.1" } }, "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ=="], @@ -2065,7 +2072,7 @@ "highlight.js": ["highlight.js@10.7.3", "", {}, "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A=="], - "hono": ["hono@4.10.2", "", {}, "sha512-p6fyzl+mQo6uhESLxbF5WlBOAJMDh36PljwlKtP5V1v09NxlqGru3ShK+4wKhSuhuYf8qxMmrivHOa/M7q0sMg=="], + "hono": ["hono@4.10.4", "", {}, "sha512-YG/fo7zlU3KwrBL5vDpWKisLYiM+nVstBQqfr7gCPbSYURnNEP9BDxEMz8KfsDR9JX0lJWDRNc6nXX31v7ZEyg=="], "hono-openapi": ["hono-openapi@1.1.0", "", { "peerDependencies": { "@hono/standard-validator": "^0.1.2", "@standard-community/standard-json": "^0.3.5", "@standard-community/standard-openapi": "^0.2.8", "@types/json-schema": "^7.0.15", "hono": "^4.8.3", "openapi-types": "^12.1.3" }, "optionalPeers": ["@hono/standard-validator", "hono"] }, "sha512-eA5hN8D2O30EkPPUxWFilcZcThAe81TShbH38Y183ZZp8WkgMh4BrPEDeZ/EFN2tyDi3cmTgKTa3+oStyJX0UA=="], @@ -2503,7 +2510,7 @@ "npm-bundled": ["npm-bundled@1.1.2", "", { "dependencies": { "npm-normalize-package-bin": "^1.0.1" } }, "sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ=="], - "npm-check-updates": ["npm-check-updates@19.1.1", "", { "bin": { "npm-check-updates": "build/cli.js", "ncu": "build/cli.js" } }, "sha512-vy/uNbaK6Xfj/QzM8OXeALZak67E0uHjUlbdT1YGy4bdj0xlBU6AVd+8bscY8vlDpyzL6Y7mxcrX8kzEDeEpNg=="], + "npm-check-updates": ["npm-check-updates@19.1.2", "", { "bin": { "npm-check-updates": "build/cli.js", "ncu": "build/cli.js" } }, "sha512-FNeFCVgPOj0fz89hOpGtxP2rnnRHR7hD2E8qNU8SMWfkyDZXA/xpgjsL3UMLSo3F/K13QvJDnbxPngulNDDo/g=="], "npm-install-checks": ["npm-install-checks@5.0.0", "", { "dependencies": { "semver": "^7.1.1" } }, "sha512-65lUsMI8ztHCxFz5ckCEC44DRvEGdZX5usQFriauxHEwt7upv1FKaQEmAtU0YnOAdwuNWCmk64xYiQABNrEyLA=="], @@ -3209,7 +3216,7 @@ "vscode-languageserver-types": ["vscode-languageserver-types@3.17.5", "", {}, "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg=="], - "vscode-uri": ["vscode-uri@3.1.0", "", {}, "sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ=="], + "vscode-uri": ["vscode-uri@3.0.8", "", {}, "sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw=="], "vue": ["vue@3.5.22", "", { "dependencies": { "@vue/compiler-dom": "3.5.22", "@vue/compiler-sfc": "3.5.22", "@vue/runtime-dom": "3.5.22", "@vue/server-renderer": "3.5.22", "@vue/shared": "3.5.22" }, "peerDependencies": { "typescript": "*" }, "optionalPeers": ["typescript"] }, "sha512-toaZjQ3a/G/mYaLSbV+QsQhIdMo9x5rrqIpYRObsJ6T/J+RyCSFwN2LHNVH9v8uIcljDNa3QzPVdv3Y6b9hAJQ=="], @@ -3315,6 +3322,8 @@ "@asyncapi/generator/ajv": ["ajv@8.17.1", "", { "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2" } }, "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g=="], + "@asyncapi/generator/commander": ["commander@6.2.1", "", {}, "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA=="], + "@asyncapi/generator/js-yaml": ["js-yaml@3.14.1", "", { "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g=="], "@asyncapi/generator/typescript": ["typescript@4.9.5", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g=="], @@ -3325,6 +3334,8 @@ "@asyncapi/generator-react-sdk/rollup": ["rollup@2.79.2", "", { "optionalDependencies": { "fsevents": "~2.3.2" }, "bin": { "rollup": "dist/bin/rollup" } }, "sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ=="], + "@asyncapi/modelina/change-case": ["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.0.3" } }, "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A=="], + "@asyncapi/modelina-cli/@oclif/core": ["@oclif/core@3.27.0", "", { "dependencies": { "@types/cli-progress": "^3.11.5", "ansi-escapes": "^4.3.2", "ansi-styles": "^4.3.0", "cardinal": "^2.1.1", "chalk": "^4.1.2", "clean-stack": "^3.0.1", "cli-progress": "^3.12.0", "color": "^4.2.3", "debug": "^4.3.5", "ejs": "^3.1.10", "get-package-type": "^0.1.0", "globby": "^11.1.0", "hyperlinker": "^1.0.0", "indent-string": "^4.0.0", "is-wsl": "^2.2.0", "js-yaml": "^3.14.1", "minimatch": "^9.0.4", "natural-orderby": "^2.0.3", "object-treeify": "^1.1.33", "password-prompt": "^1.1.3", "slice-ansi": "^4.0.0", "string-width": "^4.2.3", "strip-ansi": "^6.0.1", "supports-color": "^8.1.1", "supports-hyperlinks": "^2.2.0", "widest-line": "^3.1.0", "wordwrap": "^1.0.0", "wrap-ansi": "^7.0.0" } }, "sha512-Fg93aNFvXzBq5L7ztVHFP2nYwWU1oTCq48G0TjF/qC1UN36KWa2H5Hsm72kERd5x/sjy2M2Tn4kDEorUlpXOlw=="], "@asyncapi/nunjucks-filters/openapi-sampler": ["openapi-sampler@1.0.0-beta.17", "", { "dependencies": { "json-pointer": "^0.6.0" } }, "sha512-xYGPaPaEQFFAGQVrRpunkb8loNfL1rq4fJ+q7NH+LVBsrHKGUicD2f5Rzw6fWcRwwcOvnKD/aik9guiNWq2kpA=="], @@ -3375,12 +3386,12 @@ "@eslint-community/eslint-utils/eslint-visitor-keys": ["eslint-visitor-keys@3.4.3", "", {}, "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag=="], + "@eslint/eslintrc/globals": ["globals@14.0.0", "", {}, "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ=="], + "@eslint/eslintrc/strip-json-comments": ["strip-json-comments@3.1.1", "", {}, "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig=="], "@hyperjump/pact/just-curry-it": ["just-curry-it@3.2.1", "", {}, "sha512-Q8206k8pTY7krW32cdmPsP+DqqLgWx/hYPSj9/+7SYqSqz7UuwPbfSe07lQtvuuaVyiSJveXk0E5RydOuWwsEg=="], - "@iconify/utils/globals": ["globals@15.15.0", "", {}, "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg=="], - "@inquirer/checkbox/@inquirer/core": ["@inquirer/core@10.3.0", "", { "dependencies": { "@inquirer/ansi": "^1.0.1", "@inquirer/figures": "^1.0.14", "@inquirer/type": "^3.0.9", "cli-width": "^4.1.0", "mute-stream": "^2.0.0", "signal-exit": "^4.1.0", "wrap-ansi": "^6.2.0", "yoctocolors-cjs": "^2.1.2" }, "peerDependencies": { "@types/node": ">=18" }, "optionalPeers": ["@types/node"] }, "sha512-Uv2aPPPSK5jeCplQmQ9xadnFx2Zhj9b5Dj7bU6ZeCdDNNY11nhYy4btcSdtDguHqCT2h5oNeQTcUNSGGLA7NTA=="], "@inquirer/checkbox/@inquirer/type": ["@inquirer/type@3.0.9", "", { "peerDependencies": { "@types/node": ">=18" }, "optionalPeers": ["@types/node"] }, "sha512-QPaNt/nmE2bLGQa9b7wwyRJoLZ7pN6rcyXvzU0YCmivmJyq1BVo94G98tStRWkoD1RgDX5C+dPlhhHzNdu/W/w=="], @@ -3537,8 +3548,6 @@ "@vue/compiler-sfc/postcss": ["postcss@8.5.6", "", { "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg=="], - "@vueuse/integrations/change-case": ["change-case@5.4.4", "", {}, "sha512-HRQyTk2/YPEkt9TnUPbOpr64Uw3KOicFWPVBb+xiHvd6eBx/qPr9xqfBFDT8P2vWsvvz4jbEkfDe71W3VyNu2w=="], - "accepts/mime-types": ["mime-types@2.1.35", "", { "dependencies": { "mime-db": "1.52.0" } }, "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw=="], "accepts/negotiator": ["negotiator@0.6.3", "", {}, "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg=="], @@ -3613,6 +3622,8 @@ "generator-v2/ajv": ["ajv@8.17.1", "", { "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2" } }, "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g=="], + "generator-v2/commander": ["commander@6.2.1", "", {}, "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA=="], + "generator-v2/js-yaml": ["js-yaml@3.14.1", "", { "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g=="], "generator-v2/typescript": ["typescript@4.9.5", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g=="], @@ -3639,10 +3650,6 @@ "json-schema-migrate/ajv": ["ajv@5.5.2", "", { "dependencies": { "co": "^4.6.0", "fast-deep-equal": "^1.0.0", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.3.0" } }, "sha512-Ajr4IcMXq/2QmMkEmSvxqfLN5zGmJ92gHXAeOXq1OekoH2rfDNsgdDoL2f7QaRCy7G/E6TpxBVdRuNraMztGHw=="], - "katex/commander": ["commander@8.3.0", "", {}, "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww=="], - - "langium/vscode-uri": ["vscode-uri@3.0.8", "", {}, "sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw=="], - "lazystream/readable-stream": ["readable-stream@2.3.8", "", { "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", "isarray": "~1.0.0", "process-nextick-args": "~2.0.0", "safe-buffer": "~5.1.1", "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" } }, "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA=="], "log-symbols/chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], @@ -3661,6 +3668,8 @@ "monaco-yaml/prettier": ["prettier@2.8.8", "", { "bin": { "prettier": "bin-prettier.js" } }, "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q=="], + "monaco-yaml/vscode-uri": ["vscode-uri@3.1.0", "", {}, "sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ=="], + "node-gyp/glob": ["glob@7.2.3", "", { "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q=="], "node-sarif-builder/fs-extra": ["fs-extra@10.1.0", "", { "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" } }, "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ=="], @@ -4033,6 +4042,8 @@ "nunjucks/commander": ["commander@5.1.0", "", {}, "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg=="], + "oclif/change-case": ["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.0.3" } }, "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A=="], + "oclif/fs-extra": ["fs-extra@8.1.0", "", { "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^4.0.0", "universalify": "^0.1.0" } }, "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g=="], "optionator/fast-levenshtein": ["fast-levenshtein@2.0.6", "", {}, "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw=="], @@ -4151,6 +4162,8 @@ "@asyncapi/converter/js-yaml/argparse": ["argparse@1.0.10", "", { "dependencies": { "sprintf-js": "~1.0.2" } }, "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg=="], + "@asyncapi/generator-components/@asyncapi/modelina/change-case": ["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.0.3" } }, "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A=="], + "@asyncapi/generator-components/@asyncapi/modelina/fast-xml-parser": ["fast-xml-parser@5.3.0", "", { "dependencies": { "strnum": "^2.1.0" }, "bin": { "fxparser": "src/cli/cli.js" } }, "sha512-gkWGshjYcQCF+6qtlrqBqELqNqnt4CxruY6UVAWWnqb3DQ6qaNFEIKqzYep1XzHLM/QtrHVCxyPOtTk4LTQ7Aw=="], "@asyncapi/generator/ajv/json-schema-traverse": ["json-schema-traverse@1.0.0", "", {}, "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="], diff --git a/docs/.gitignore b/docs/.gitignore new file mode 100644 index 0000000..6dc972e --- /dev/null +++ b/docs/.gitignore @@ -0,0 +1 @@ +.vitepress/cache \ No newline at end of file diff --git a/docs/.vitepress/config.ts b/docs/.vitepress/config.ts new file mode 100644 index 0000000..c288320 --- /dev/null +++ b/docs/.vitepress/config.ts @@ -0,0 +1,58 @@ +import { type DefaultTheme, defineConfig } from "vitepress"; +import { withMermaid } from "vitepress-plugin-mermaid"; + +// https://vitepress.dev/reference/site-config +export default withMermaid({ + title: "Echoform Authoritative Docs", + description: + "Technical documentation for the Echoform game authoritative server", + appearance: true, + lastUpdated: true, + + themeConfig: { + // https://vitepress.dev/reference/default-theme-config + nav: [ + { text: "Game", link: "/game" }, + { text: "Backend Reference", link: "/backend-reference" }, + ], + + sidebar: { + "/backend-reference": [ + { + text: "Flows", + link: "/backend-reference/flows", + items: [ + { + text: "Authentication", + link: "/backend-reference/flows/authentication", + }, + ], + }, + ], + "/game": [ + { + text: "Game", + link: "/game", + items: [ + { + text: "Story", + link: "/game/story", + }, + { + text: "Music", + link: "/game/music", + }, + ], + } + ], + }, + + socialLinks: [ + { icon: "github", link: "https://github.com/floffah/echoform" }, + ], + + editLink: { + pattern: 'https://github.com/floffah/echoform/edit/main/docs/:path' + }, + } as DefaultTheme.Config, +}); diff --git a/backend/docs/reference/flows/authentication.md b/docs/backend-reference/flows/authentication.md similarity index 100% rename from backend/docs/reference/flows/authentication.md rename to docs/backend-reference/flows/authentication.md diff --git a/backend/docs/reference/flows/index.md b/docs/backend-reference/flows/index.md similarity index 100% rename from backend/docs/reference/flows/index.md rename to docs/backend-reference/flows/index.md diff --git a/backend/docs/reference/index.md b/docs/backend-reference/index.md similarity index 100% rename from backend/docs/reference/index.md rename to docs/backend-reference/index.md diff --git a/docs/game/index.md b/docs/game/index.md new file mode 100644 index 0000000..da741f3 --- /dev/null +++ b/docs/game/index.md @@ -0,0 +1 @@ +You can see an outline of the story [here](./story.html) \ No newline at end of file diff --git a/docs/game/music.md b/docs/game/music.md new file mode 100644 index 0000000..4da041e --- /dev/null +++ b/docs/game/music.md @@ -0,0 +1,15 @@ +# Music + +- [First Breaths](/music/first-breathing.pdf) + +## Musical Identity +- Title Theme: “First Breaths” in E minor. A choral/symphonic piece that represents the player’s materialization. +- Leitmotif: Being developed as a core melody that will appear in multiple forms across the soundtrack (like Zelda’s Lullaby or Fi’s Theme). Built around modal tone (e.g., B♭ Dorian). +- Musical Themes: + - Breathlike trills to represent life awakening + - Memory represented through floating melodic fragments + - Each piece of music maps to an emotional state or story moment + +## Artist Identity +- Music is released under the stage name: Morthen Vale +- Spotify/Bandcamp bio tone: cryptic, poetic, non-literal \ No newline at end of file diff --git a/docs/game/story.md b/docs/game/story.md new file mode 100644 index 0000000..8c63d40 --- /dev/null +++ b/docs/game/story.md @@ -0,0 +1,26 @@ +# Echoform: World and Story Overview + +## Summary + +Echoform is a cozy, languageless MMO with spiritual and existential themes. The player controls a non-human entity known as an Echoform, a being constructed from memory strands and light, slowly forming in a half-lost world. The game’s story is delivered through visuals, music, environmental design, and motifs—without spoken or written language. + +## Core Themes +- Reconnection: The world is still alive but fragmented—players restore connections. +- Becoming: The Echoform doesn’t start fully formed; it remembers itself into shape. +- Restoration (but not erasure): The world isn’t reborn—it is rediscovered and lived in again. +- Memory & Reflection: Strands of light represent memories, which influence how the world reshapes. + +## The Echoform +- The player character is a translucent, non-human silhouette who awakens alone. +- The Echoform materializes from a fading tree at the center of a personal void island. +- Memory strands—thin glowing threads—extend from the Echoform, pulsing with movement. +- These strands represent the self forming as the world responds in subtle ways. +- Echoforms don’t talk, but can sense, observe, and cause emotional or light-based reactions. + +## Visual Branding +- The world uses a dark, minimalistic visual language. +- Glowing memory strands or petals occasionally appear. +- Key visual elements: + - A lone tree stump in an infinite mirror void + - The Echoform as a transparent humanoid figure + - Silhouettes, soft gradients, sparse particle effects diff --git a/backend/docs/index.md b/docs/index.md similarity index 51% rename from backend/docs/index.md rename to docs/index.md index dd765af..b74c718 100644 --- a/backend/docs/index.md +++ b/docs/index.md @@ -7,10 +7,13 @@ hero: tagline: Technical documentation for the Echoform game authoritative server actions: - theme: brand - text: Reference - link: /reference + text: Backend Reference + link: /backend-reference - theme: alt - text: API Examples - link: /api-examples + text: Game Documentation + link: /game --- +::: info +I am looking for artists to help out with graphics & 3d art 🙂, email echoform@ramdta.com if interested +::: \ No newline at end of file diff --git a/docs/public/music/first-breathing.pdf b/docs/public/music/first-breathing.pdf new file mode 100644 index 0000000..15c16b1 Binary files /dev/null and b/docs/public/music/first-breathing.pdf differ diff --git a/game/assets/audio/First Breathing.mp3 b/game/assets/audio/First Breathing.mp3 index 43cd944..75329fe 100644 Binary files a/game/assets/audio/First Breathing.mp3 and b/game/assets/audio/First Breathing.mp3 differ diff --git a/game/models/player/eform.gltf b/game/models/player/eform.gltf index a61030a..a0b4b29 100644 --- a/game/models/player/eform.gltf +++ b/game/models/player/eform.gltf @@ -1 +1,3 @@ -{"asset":{"version":"2.0","generator":"Blockbench 5.0.2 glTF exporter"},"scenes":[{"nodes":[12,13],"name":"blockbench_export"}],"scene":0,"nodes":[{"translation":[0,-0.1875,0],"name":"head","mesh":0},{"translation":[-0.0625,0.5,0],"name":"head","children":[0]},{"translation":[0,-0.1875,0],"name":"body","mesh":1},{"translation":[0,-0.4375,0],"name":"torso","children":[2]},{"translation":[0,-0.1875,0],"name":"arm_right","mesh":2},{"translation":[0,-0.4375,0],"name":"arm_right","children":[4]},{"translation":[0,-0.1875,0],"name":"arm left","mesh":3},{"translation":[0,-0.4375,0],"name":"arm left","children":[6]},{"translation":[-0.0625,-0.6875,0],"name":"leg_left","mesh":4},{"translation":[0.0625,0.0625,0],"name":"leg_left","children":[8]},{"translation":[0.125,-0.6875,0],"name":"leg_right","mesh":5},{"translation":[-0.125,0.0625,0],"name":"leg_right","children":[10]},{"translation":[0,0.4375,0],"name":"body","children":[1,3,5,7,9,11]},{"translation":[-0.0625,0.75,0],"name":"collision-colonly","mesh":6}],"bufferViews":[{"buffer":0,"byteOffset":0,"byteLength":288,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":288,"byteLength":288,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":576,"byteLength":192,"target":34962,"byteStride":8},{"buffer":0,"byteOffset":768,"byteLength":72,"target":34963},{"buffer":0,"byteOffset":840,"byteLength":1152,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":1992,"byteLength":1152,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":3144,"byteLength":768,"target":34962,"byteStride":8},{"buffer":0,"byteOffset":3912,"byteLength":288,"target":34963},{"buffer":0,"byteOffset":4200,"byteLength":432,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":4632,"byteLength":432,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":5064,"byteLength":288,"target":34962,"byteStride":8},{"buffer":0,"byteOffset":5352,"byteLength":108,"target":34963},{"buffer":0,"byteOffset":5460,"byteLength":432,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":5892,"byteLength":432,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":6324,"byteLength":288,"target":34962,"byteStride":8},{"buffer":0,"byteOffset":6612,"byteLength":108,"target":34963},{"buffer":0,"byteOffset":6720,"byteLength":240,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":6960,"byteLength":240,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":7200,"byteLength":160,"target":34962,"byteStride":8},{"buffer":0,"byteOffset":7360,"byteLength":60,"target":34963},{"buffer":0,"byteOffset":7420,"byteLength":240,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":7660,"byteLength":240,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":7900,"byteLength":160,"target":34962,"byteStride":8},{"buffer":0,"byteOffset":8060,"byteLength":60,"target":34963},{"buffer":0,"byteOffset":8120,"byteLength":2784,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":10904,"byteLength":2784,"target":34962,"byteStride":12},{"buffer":0,"byteOffset":13688,"byteLength":1856,"target":34962,"byteStride":8},{"buffer":0,"byteOffset":15544,"byteLength":72,"target":34963},{"buffer":0,"byteOffset":15616,"byteLength":624,"target":34963},{"buffer":0,"byteOffset":16240,"byteLength":12},{"buffer":0,"byteOffset":16252,"byteLength":48},{"buffer":0,"byteOffset":16300,"byteLength":12},{"buffer":0,"byteOffset":16312,"byteLength":48}],"buffers":[{"byteLength":16360,"uri":"data:application/octet-stream;base64,AAAAPgAAAAAAAIC9AAAAPgAAQD4AAIC9AAAAPgAAQD4AAIA9AAAAPgAAAAAAAIA9AACAvQAAAAAAAIA9AACAvQAAQD4AAIA9AACAvQAAQD4AAIC9AACAvQAAAAAAAIC9AAAAPgAAQD4AAIA9AAAAPgAAQD4AAIC9AACAvQAAQD4AAIC9AACAvQAAQD4AAIA9AAAAPgAAAAAAAIC9AAAAPgAAAAAAAIA9AACAvQAAAAAAAIA9AACAvQAAAAAAAIC9AAAAPgAAAAAAAIA9AAAAPgAAQD4AAIA9AACAvQAAQD4AAIA9AACAvQAAAAAAAIA9AACAvQAAAAAAAIC9AACAvQAAQD4AAIC9AAAAPgAAQD4AAIC9AAAAPgAAAAAAAIC9AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AACgPgAAQD4AAKA+AAAAAAAAQD4AAAAAAABAPgAAQD4AAKA+AADAPgAAoD4AAEA+AABAPgAAQD4AAEA+AADAPgAAoD4AAAAAAACgPgAAAD4AAAA/AAAAPgAAAD8AAAAAAACgPgAAgD4AAKA+AAAAPgAAAD8AAAA+AAAAPwAAgD4AAEA+AADAPgAAQD4AAEA+AAAAAAAAQD4AAAAAAADAPgAAQD4AAEA+AABAPgAAAAAAAAAAAAAAAAAAAAAAAEA+AAABAAIAAAACAAMABAAFAAYABAAGAAcACAAJAAoACAAKAAsADAANAA4ADAAOAA8AEAARABIAEAASABMAFAAVABYAFAAWABcAAAAAvQAAcD8AAIC9AACAvQAAcD8AAIC9AACAvQAAcD8AAIA9AAAAvQAAcD8AAIA9AAAAvQAAED8AAIA9AACAvQAAAD8AAIA9AACAvQAAAD8AAIC9AAAAvQAAED8AAIC9AACAvQAAcD8AAIA9AACAvQAAUD8AAIA9AAAAvUWSVD8AAIA9AAAAvQAAcD8AAIA9AAAAvQAAcD8AAIC9AAAAvUWSVD8AAIC9AACAvQAAUD8AAIC9AACAvQAAcD8AAIC9AAAAAAAAcD8AAIC9AAAAAAAAUD8AAIC9AAAAvUWSVD8AAIC9AAAAvQAAcD8AAIC9AAAAvQAAcD8AAIA9AAAAAAAAcD8AAIA9AAAAAAAAcD8AAIC9AAAAvQAAcD8AAIC9AAAAvQAAcD8AAIA9AAAAvUWSVD8AAIA9AAAAAAAAUD8AAIA9AAAAAAAAcD8AAIA9AAAAvQAAED8AAIC9AAAAAAAAAD8AAIC9AAAAAAAAAD8AAIA9AAAAvQAAED8AAIA9AAAAPgAAcD8AAIC9AAAAPgAAUD8AAIC9AAAAAAAAUD8AAIC9AAAAAAAAcD8AAIC9AAAAPgAAcD8AAIC9AAAAAAAAcD8AAIC9AAAAAAAAcD8AAIA9AAAAPgAAcD8AAIA9AAAAAAAAcD8AAIA9AAAAAAAAUD8AAIA9AAAAPgAAUD8AAIA9AAAAPgAAcD8AAIA9AABAvgAAcD8AAIA9AABAvgAAUD8AAIA9AACAvQAAUD8AAIA9AACAvQAAcD8AAIA9AABAvgAAcD8AAIA9AACAvQAAcD8AAIA9AACAvQAAcD8AAIC9AABAvgAAcD8AAIC9AACAvQAAcD8AAIC9AACAvQAAUD8AAIC9AABAvgAAUD8AAIC9AABAvgAAcD8AAIC9AABAvgAAAD8AAIA9AABAvgAAUD8AAIA9AABAvgAAUD8AAIC9AABAvgAAAD8AAIC9AABAvgAAAD8AAIC9AABAvgAAUD8AAIC9AACAvQAAUD8AAIC9AACAvQAAAD8AAIC9AACAvQAAAD8AAIC9AACAvQAAUD8AAIC9AAAAvUWSVD8AAIC9AAAAvQAAED8AAIC9AAAAvQAAED8AAIC9AAAAvUWSVD8AAIC9AAAAAAAAUD8AAIC9AAAAAAAAAD8AAIC9AAAAAAAAAD8AAIC9AAAAAAAAUD8AAIC9AAAAPgAAUD8AAIC9AAAAPgAAAD8AAIC9AAAAPgAAAD8AAIC9AAAAPgAAUD8AAIC9AAAAPgAAUD8AAIA9AAAAPgAAAD8AAIA9AAAAPgAAAD8AAIA9AAAAPgAAUD8AAIA9AAAAAAAAUD8AAIA9AAAAAAAAAD8AAIA9AAAAAAAAAD8AAIA9AAAAAAAAUD8AAIA9AAAAvUWSVD8AAIA9AAAAvQAAED8AAIA9AAAAvQAAED8AAIA9AAAAvUWSVD8AAIA9AACAvQAAUD8AAIA9AACAvQAAAD8AAIA9AACAvQAAAD8AAIA9AACAvQAAUD8AAIA9AABAvgAAUD8AAIA9AABAvgAAAD8AAIA9AAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAALvlkPy755L4AAAAALvlkPy755L4AAAAALvlkPy755L4AAAAALvlkPy755L4AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/Lvlkvy755L4AAAAALvlkvy755L4AAAAALvlkvy755L4AAAAALvlkvy755L4AAAAAAAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAA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AAAQPwAAUD8AAIA9AACAPgAAUD8AAIA9AACAPgAAUD8AAIC9AAAQPwAAcD8AAIC9AAAQPwAAUD8AAIC9AACAPgAAUD8AAIC9AACAPgAAcD8AAIC9AAAQPwAAcD8AAIA9AAAQPwAAcD8AAIC9AACAPgAAcD8AAIC9AACAPgAAcD8AAIA9AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAABgPgAAiD4AAGA+AACYPgAAgD4AAJg+AACAPgAAiD4AAGA+AAAAPQAAYD4AAAAAAABAPgAAAAAAAEA+AAAAPQAAgD4AAEA+AACAPgAAID4AAGA+AAAgPgAAYD4AAEA+AACgPQAAUD4AAKA9AABwPgAA4D0AAHA+AADgPQAAUD4AAOA+AADAPQAA4D4AAIA9AADQPgAAgD0AANA+AADAPQAAmD4AAAA9AACYPgAAAAAAAGA+AAAAAAAAYD4AAAA9AACoPgAAQD4AAKg+AAAgPgAAgD4AACA+AACAPgAAQD4AAAAAAABQPgAAAAAAAHA+AACgPQAAcD4AAKA9AABQPgAABD8AAMA9AAAEPwAAgD0AAOA+AACAPQAA4D4AAMA9AAABAAIAAAACAAMABAAFAAYABAAGAAcACAAJAAoACAAKAAsADAANAA4ADAAOAA8AEAARABIAEAASABMAFAAVABYAFAAWABcAGAAZABoAGAAaABsAHAAdAB4AHAAeAB8AIAAhACIAIAAiACMAAAAgvwAAcD8AAIC9AAAgvwAAUD8AAIC9AAAgvwAAUD8AAIA9AAAgvwAAcD8AAIA9AACgvgAAUD8AAIC9AACgvgAAcD8AAIC9AABAvgAAcD8AAIC9AABAvgAAUD8AAIC9AACgvgAAUD8AAIA9AACgvgAAUD8AAIC9AABAvgAAUD8AAIC9AABAvgAAUD8AAIA9AACgvgAAcD8AAIA9AACgvgAAUD8AAIA9AABAvgAAUD8AAIA9AABAvgAAcD8AAIA9AACgvgAAcD8AAIC9AACgvgAAcD8AAIA9AABAvgAAcD8AAIA9AABAvgAAcD8AAIC9AAAgvwAAUD8AAIC9AAAgvwAAcD8AAIC9AACgvgAAcD8AAIC9AACgvgAAUD8AAIC9AAAgvwAAUD8AAIA9AAAgvwAAUD8AAIC9AACgvgAAUD8AAIC9AACgvgAAUD8AAIA9AAAgvwAAcD8AAIA9AAAgvwAAUD8AAIA9AACgvgAAUD8AAIA9AACgvgAAcD8AAIA9AAAgvwAAcD8AAIC9AAAgvwAAcD8AAIA9AACgvgAAcD8AAIA9AACgvgAAcD8AAIC9AACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAA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DgAMAA4ADwAQABEAEgAQABIAEwAAAAA+AAAAAAAAgL0AAAA+AABAPgAAgL0AAAA+AABAPgAAgD0AAAA+AAAAAAAAgD0AAIC9AAAAAAAAgD0AAIC9AABAPgAAgD0AAIC9AABAPgAAgL0AAIC9AAAAAAAAgL0AAAA+AABAPgAAgD0AAAA+AABAPgAAgL0AAIC9AABAPgAAgL0AAIC9AABAPgAAgD0AAAA+AAAAAAAAgL0AAAA+AAAAAAAAgD0AAIC9AAAAAAAAgD0AAIC9AAAAAAAAgL0AAAA+AAAAAAAAgD0AAAA+AABAPgAAgD0AAIC9AABAPgAAgD0AAIC9AAAAAAAAgD0AAIC9AAAAAAAAgL0AAIC9AABAPgAAgL0AAAA+AABAPgAAgL0AAAA+AAAAAAAAgL0AAAA9AAAAAAAAgL0AAAAAAAAAAAAAgL0AAAAAAAAAAAAAgD0AAAA9AAAAAAAAgD0AAAA9AADAvgAAgD0AAAAAAADgvgAAgD0AAAAAAADgvgAAgL0AAAA9AADAvgAAgL0AAAAAAAAAAAAAgD0AAAAAAAAAvgAAgD0AAAA9223bvQAAgD0AAAA9AAAAAAAAgD0AAAA9AAAAAAAAgL0AAAA9223bvQAAgL0AAAAAAAAAvgAAgL0AAAAAAAAAAAAAgL0AAIA9AAAAAAAAgL0AAIA9AAAAvgAAgL0AAAA9223bvQAAgL0AAAA9AAAAAAAAgL0AAAA9AAAAAAAAgD0AAIA9AAAAAAAAgD0AAIA9AAAAAAAAgL0AAAA9AAAAAAAAgL0AAAA9AAAAAAAAgD0AAAA9223bvQAAgD0AAIA9AAAAvgAAgD0AAIA9AAAAAAAAgD0AAAA9AADAvgAAgL0AAIA9AADgvgAAgL0AAIA9AADgvgAAgD0AAAA9AADAvgAAgD0AAEA+AAAAAAAAgL0AAEA+AAAAvgAAgL0AAIA9AAAAvgAAgL0AAIA9AAAAAAAAgL0AAEA+AAAAAAAAgL0AAIA9AAAAAAAAgL0AAIA9AAAAAAAAgD0AAEA+AAAAAAAAgD0AAIA9AAAAAAAAgD0AAIA9AAAAvgAAgD0AAEA+AAAAvgAAgD0AAEA+AAAAAAAAgD0AAAC+AAAAAAAAgD0AAAC+AAAAvgAAgD0AAAAAAAAAvgAAgD0AAAAAAAAAAAAAgD0AAAC+AAAAAAAAgD0AAAAAAAAAAAAAgD0AAAAAAAAAAAAAgL0AAAC+AAAAAAAAgL0AAAAAAAAAAAAAgL0AAAAAAAAAvgAAgL0AAAC+AAAAvgAAgL0AAAC+AAAAAAAAgL0AAAC+AADgvgAAgD0AAAC+AAAAvgAAgD0AAAC+AAAAvgAAgL0AAAC+AADgvgAAgL0AAAC+AADgvgAAgL0AAAC+AAAAvgAAgL0AAAAAAAAAvgAAgL0AAAAAAADgvgAAgL0AAAAAAADgvgAAgL0AAAAAAAAAvgAAgL0AAAA9223bvQAAgL0AAAA9AADAvgAAgL0AAAA9AADAvgAAgL0AAAA9223bvQAAgL0AAIA9AAAAvgAAgL0AAIA9AADgvgAAgL0AAIA9AADgvgAAgL0AAIA9AAAAvgAAgL0AAEA+AAAAvgAAgL0AAEA+AADgvgAAgL0AAEA+AADgvgAAgL0AAEA+AAAAvgAAgL0AAEA+AAAAvgAAgD0AAEA+AADgvgAAgD0AAEA+AADgvgAAgD0AAEA+AAAAvgAAgD0AAIA9AAAAvgAAgD0AAIA9AADgvgAAgD0AAIA9AADgvgAAgD0AAIA9AAAAvgAAgD0AAAA9223bvQAAgD0AAAA9AADAvgAAgD0AAAA9AADAvgAAgD0AAAA9223bvQAAgD0AAAAAAAAAvgAAgD0AAAAAAADgvgAAgD0AAAAAAADgvgAAgD0AAAAAAAAAvgAAgD0AAAC+AAAAvgAAgD0AAAC+AADgvgAAgD0AACA/AAAAAAAAgD0AACA/AAAAvgAAgD0AACA/AAAAvgAAgL0AACA/AAAAAAAAgL0AAKA+AAAAvgAAgD0AAKA+AAAAAAAAgD0AAEA+AAAAAAAAgD0AAEA+AAAAvgAAgD0AAKA+AAAAvgAAgL0AAKA+AAAAvgAAgD0AAEA+AAAAvgAAgD0AAEA+AAAAvgAAgL0AAKA+AAAAAAAAgL0AAKA+AAAAvgAAgL0AAEA+AAAAvgAAgL0AAEA+AAAAAAAAgL0AAKA+AAAAAAAAgD0AAKA+AAAAAAAAgL0AAEA+AAAAAAAAgL0AAEA+AAAAAAAAgD0AACA/AAAAvgAAgD0AACA/AAAAAAAAgD0AAKA+AAAAAAAAgD0AAKA+AAAAvgAAgD0AACA/AAAAvgAAgL0AACA/AAAAvgAAgD0AAKA+AAAAvgAAgD0AAKA+AAAAvgAAgL0AACA/AAAAAAAAgL0AACA/AAAAvgAAgL0AAKA+AAAAvgAAgL0AAKA+AAAAAAAAgL0AACA/AAAAAAAAgD0AACA/AAAAAAAAgL0AAKA+AAAAAAAAgL0AAKA+AAAAAAAAgD0AABC/AAAAAAAAgL0AABC/AAAAvgAAgL0AABC/AAAAvgAAgD0AABC/AAAAAAAAgD0AAIC+AAAAvgAAgL0AAIC+AAAAAAAAgL0AAAC+AAAAAAAAgL0AAAC+AAAAvgAAgL0AAIC+AAAAvgAAgD0AAIC+AAAAvgAAgL0AAAC+AAAAvgAAgL0AAAC+AAAAvgAAgD0AAIC+AAAAAAAAgD0AAIC+AAAAvgAAgD0AAAC+AAAAvgAAgD0AAAC+AAAAAAAAgD0AAIC+AAAAAAAAgL0AAIC+AAAAAAAAgD0AAAC+AAAAAAAAgD0AAAC+AAAAAAAAgL0AABC/AAAAvgAAgL0AABC/AAAAAAAAgL0AAIC+AAAAAAAAgL0AAIC+AAAAvgAAgL0AABC/AAAAvgAAgD0AABC/AAAAvgAAgL0AAIC+AAAAvgAAgL0AAIC+AAAAvgAAgD0AABC/AAAAAAAAgD0AABC/AAAAvgAAgD0AAIC+AAAAvgAAgD0AAIC+AAAAAAAAgD0AABC/AAAAAAAAgL0AABC/AAAAAAAAgD0AAIC+AAAAAAAAgD0AAIC+AAAAAAAAgL0AAEA+AABAvwAAgD0AAIA9AABAvwAAgD0AAIA9AABAvwAAgL0AAEA+AABAvwAAgL0AAIA9AABAvwAAgD0AAEA+AABAvwAAgD0AAEA+AADgvgAAgD0AAIA9AADgvgAAgD0AAIA9AABAvwAAgL0AAIA9AABAvwAAgD0AAIA9AADgvgAAgD0AAIA9AADgvgAAgL0AAEA+AABAvwAAgL0AAIA9AABAvwAAgL0AAIA9AADgvgAAgL0AAEA+AADgvgAAgL0AAEA+AABAvwAAgD0AAEA+AABAvwAAgL0AAEA+AADgvgAAgL0AAEA+AADgvgAAgD0AAAC+AABAvwAAgL0AAAAAAABAvwAAgL0AAAAAAABAvwAAgD0AAAC+AABAvwAAgD0AAAAAAABAvwAAgD0AAAAAAABAvwAAgL0AAAAAAADgvgAAgL0AAAAAAADgvgAAgD0AAAC+AABAvwAAgD0AAAAAAABAvwAAgD0AAAAAAADgvgAAgD0AAAC+AADgvgAAgD0AAAC+AABAvwAAgL0AAAC+AABAvwAAgD0AAAC+AADgvgAAgD0AAAC+AADgvgAAgL0AAAAAAABAvwAAgL0AAAC+AABAvwAAgL0AAAC+AADgvgAAgL0AAAAAAADgvgAAgL0AAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAu+WQ/LvnkvgAAAAAu+WQ/LvnkvgAAAAAu+WQ/LvnkvgAAAAAu+WQ/LvnkvgAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8u+WS/LvnkvgAAAAAu+WS/LvnkvgAAAAAu+WS/LvnkvgAAAAAu+WS/LvnkvgAAAAAAAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAKA+AABAPgAAoD4AAAAAAABAPgAAAAAAAEA+AABAPgAAoD4AAMA+AACgPgAAQD4AAEA+AABAPgAAQD4AAMA+AACgPgAAAAAAAKA+AAAAPgAAAD8AAAA+AAAAPwAAAAAAAKA+AACAPgAAoD4AAAA+AAAAPwAAAD4AAAA/AACAPgAAQD4AAMA+AABAPgAAQD4AAAAAAABAPgAAAAAAAMA+AABAPgAAQD4AAEA+AAAAAAAAAAAAAAAAAAAAAAAAQD4AALw+AACAPQAAuD4AAIA9AAC4PgAAwD0AALw+AADAPQAAQD0AAIA9AABAPajGoz0AAKA9qMajPQAAoD0AAIA9AAAQPgAAAAAAABA+AAAAPQAAGD4gbts8AAAYPgAAAAAAABg+AABQPgAAGD7EbWs+AAAgPgAAcD4AACA+AABQPgAAED4AAFA+AAAQPgAAcD4AABg+xG1rPgAAGD4AAFA+AAC8PgAAwD0AAMA+AADAPQAAwD4AAIA9AAC8PgAAgD0AABg+AAAAAAAAGD4gbts8AAAgPgAAAD0AACA+AAAAAAAAAAAAAIA9AAAAAHjHoz0AAAA9eMejPQAAAD0AAIA9AADgPQAAUD4AAOA9AABwPgAAED4AAHA+AAAQPgAAUD4AANA+AACAPQAAwD4AAIA9AADAPgAAwD0AANA+AADAPQAAID4AAAAAAAAgPgAAAD0AAEA+AAAAPQAAQD4AAAAAAADgPQAAAAAAAOA9AAAAPQAAED4AAAA9AAAQPgAAAAAAAKg+AADAPQAAuD4AAMA9AAC4PgAAgD0AAKg+AACAPQAAID4AAFA+AAAgPgAAcD4AAEA+AABwPgAAQD4AAFA+AACgPQAAsD4AAKA9AACIPgAAQD0AAIg+AABAPQAAsD4AAEA+AACgPgAAQD4AAHA+AAAgPgAAcD4AACA+AACgPgAAID4AAKA+AAAgPgAAcD4AABg+xG1rPgAAGD4AAJg+AAAYPgAAmD4AABg+xG1rPgAAED4AAHA+AAAQPgAAoD4AABA+AACgPgAAED4AAHA+AADgPQAAcD4AAOA9AACgPgAAAD0AALA+AAAAPQAAiD4AAAAAAACIPgAAAAAAALA+AABAPgAA4D0AAEA+AAAAPQAAID4AAAA9AAAgPgAA4D0AACA+AADgPQAAID4AAAA9AAAYPiBu2zwAABg+AADAPQAAGD4AAMA9AAAYPiBu2zwAABA+AAAAPQAAED4AAOA9AAAQPgAA4D0AABA+AAAAPQAA4D0AAAA9AADgPQAA4D0AAGA+AACIPgAAYD4AAJg+AACAPgAAmD4AAIA+AACIPgAAYD4AAAA9AABgPgAAAAAAAEA+AAAAAAAAQD4AAAA9AACAPgAAQD4AAIA+AAAgPgAAYD4AACA+AABgPgAAQD4AAKA9AABQPgAAoD0AAHA+AADgPQAAcD4AAOA9AABQPgAA4D4AAMA9AADgPgAAgD0AANA+AACAPQAA0D4AAMA9AACYPgAAAD0AAJg+AAAAAAAAYD4AAAAAAABgPgAAAD0AAKg+AABAPgAAqD4AACA+AACAPgAAID4AAIA+AABAPgAAAAAAAFA+AAAAAAAAcD4AAKA9AABwPgAAoD0AAFA+AAAEPwAAwD0AAAQ/AACAPQAA4D4AAIA9AADgPgAAwD0AAIg+AACIPgAAiD4AAJg+AACYPgAAmD4AAJg+AACIPgAAYD4AAHA+AABgPgAAUD4AAEA+AABQPgAAQD4AAHA+AACYPgAA4D0AAJg+AAAQPgAAqD4AABA+AACoPgAA4D0AAKA9AAAAAAAAoD0AAAA9AADgPQAAAD0AAOA9AAAAAAAAmD4AAIA9AACYPgAAwD0AAKg+AADAPQAAqD4AAIA9AACYPgAAcD4AAJg+AABQPgAAYD4AAFA+AABgPgAAcD4AAGA+AADgPQAAYD4AABA+AACYPgAAED4AAJg+AADgPQAAAAAAAAAAAAAAAAAAAD0AAKA9AAAAPQAAoD0AAAAAAABgPgAAgD0AAGA+AADAPQAAmD4AAMA9AACYPgAAgD0AALA+AAAAAAAAoD4AAAAAAACgPgAAAD0AALA+AAAAPQAAID4AAEA+AABAPgAAQD4AAEA+AADgPQAAID4AAOA9AAAAALzjIT4AAAA9vOMhPgAAAD14x6M9AAAAAHjHoz0AAOA9AADIPgAAED4AAMg+AAAQPgAAoD4AAOA9AACgPgAAAAAAANg+AAAAPQAA2D4AAAA9AACwPgAAAAAAALA+AACgPgAAcD4AALA+AABwPgAAsD4AAFA+AACgPgAAUD4AAEA9VOMhPgAAoD1U4yE+AACgPajGoz0AAEA9qMajPQAA4D0AAEA+AAAQPgAAQD4AABA+AADgPQAA4D0AAOA9AABAPQAA2D4AAKA9AADYPgAAoD0AALA+AABAPQAAsD4AACA+AADIPgAAQD4AAMg+AABAPgAAoD4AACA+AACgPgAAAQACAAAAAgADAAQABQAGAAQABgAHAAgACQAKAAgACgALAAwADQAOAAwADgAPABAAEQASABAAEgATABQAFQAWABQAFgAXABgAGQAaABgAGgAbABwAHQAeABwAHgAfACAAIQAiACAAIgAjACQAJQAmACQAJgAnACgAKQAqACgAKgArACwALQAuACwALgAvADAAMQAyADAAMgAzADQANQA2ADQANgA3ADgAOQA6ADgAOgA7ADwAPQA+ADwAPgA/AEAAQQBCAEAAQgBDAEQARQBGAEQARgBHAEgASQBKAEgASgBLAEwATQBOAEwATgBPAFAAUQBSAFAAUgBTAFQAVQBWAFQAVgBXAFgAWQBaAFgAWgBbAFwAXQBeAFwAXgBfAGAAYQBiAGAAYgBjAGQAZQBmAGQAZgBnAGgAaQBqAGgAagBrAGwAbQBuAGwAbgBvAHAAcQByAHAAcgBzAHQAdQB2AHQAdgB3AHgAeQB6AHgAegB7AHwAfQB+AHwAfgB/AIAAgQCCAIAAggCDAIQAhQCGAIQAhgCHAIgAiQCKAIgAigCLAIwAjQCOAIwAjgCPAJAAkQCSAJAAkgCTAJQAlQCWAJQAlgCXAJgAmQCaAJgAmgCbAJwAnQCeAJwAngCfAKAAoQCiAKAAogCjAKQApQCmAKQApgCnAKgAqQCqAKgAqgCrAKwArQCuAKwArgCvALAAsQCyALAAsgCzALQAtQC2ALQAtgC3ALgAuQC6ALgAugC7ALwAvQC+ALwAvgC/AMAAwQDCAMAAwgDDAMQAxQDGAMQAxgDHAMgAyQDKAMgAygDLAMwAzQDOAMwAzgDPANAA0QDSANAA0gDTANQA1QDWANQA1gDXANgA2QDaANgA2gDbANwA3QDeANwA3gDfAOAA4QDiAOAA4gDjAOQA5QDmAOQA5gDnAAAAAAAAAIA/AAAAQBz2mT4AAAAAAAAAAMsmdD8c9pm+AAAAAAAAAADLJnQ/HPaZPgAAAAAAAAAAyyZ0PwAAAAAAAIA/AAAAQBz2mb4AAAAAAAAAAMsmdD8c9pk+AAAAAAAAAADLJnQ/HPaZvgAAAAAAAAAAyyZ0Pw=="}],"accessors":[{"bufferView":0,"componentType":5126,"count":24,"max":[0.125,0.1875,0.0625],"min":[-0.0625,0,-0.0625],"type":"VEC3"},{"bufferView":1,"componentType":5126,"count":24,"max":[1,1,1],"min":[-1,-1,-1],"type":"VEC3"},{"bufferView":2,"componentType":5126,"count":24,"max":[0.5,0.375],"min":[0,0],"type":"VEC2"},{"bufferView":3,"componentType":5123,"count":36,"max":[23],"min":[0],"type":"SCALAR"},{"bufferView":4,"componentType":5126,"count":96,"max":[0.125,0.9375,0.0625],"min":[-0.1875,0.5,-0.0625],"type":"VEC3"},{"bufferView":5,"componentType":5126,"count":96,"max":[1,1,1],"min":[-1,-0.4472135901451111,-1],"type":"VEC3"},{"bufferView":6,"componentType":5126,"count":96,"max":[0.40625,0.34375],"min":[0,0],"type":"VEC2"},{"bufferView":7,"componentType":5123,"count":144,"max":[95],"min":[0],"type":"SCALAR"},{"bufferView":8,"componentType":5126,"count":36,"max":[0.5625,0.9375,0.0625],"min":[0.125,0.8125,-0.0625],"type":"VEC3"},{"bufferView":9,"componentType":5126,"count":36,"max":[1,1,1],"min":[0,-1,-1],"type":"VEC3"},{"bufferView":10,"componentType":5126,"count":36,"max":[0.515625,0.296875],"min":[0,0],"type":"VEC2"},{"bufferView":11,"componentType":5123,"count":54,"max":[35],"min":[0],"type":"SCALAR"},{"bufferView":12,"componentType":5126,"count":36,"max":[-0.1875,0.9375,0.0625],"min":[-0.625,0.8125,-0.0625],"type":"VEC3"},{"bufferView":13,"componentType":5126,"count":36,"max":[0,1,1],"min":[-1,-1,-1],"type":"VEC3"},{"bufferView":14,"componentType":5126,"count":36,"max":[0.328125,0.296875],"min":[0,0],"type":"VEC2"},{"bufferView":15,"componentType":5123,"count":54,"max":[35],"min":[0],"type":"SCALAR"},{"bufferView":16,"componentType":5126,"count":20,"max":[0.125,0.5,0.0625],"min":[0,0.1875,-0.0625],"type":"VEC3"},{"bufferView":17,"componentType":5126,"count":20,"max":[1,0,1],"min":[-1,-1,-1],"type":"VEC3"},{"bufferView":18,"componentType":5126,"count":20,"max":[0.34375,0.421875],"min":[0,0],"type":"VEC2"},{"bufferView":19,"componentType":5123,"count":30,"max":[19],"min":[0],"type":"SCALAR"},{"bufferView":20,"componentType":5126,"count":20,"max":[-0.0625,0.5,0.0625],"min":[-0.1875,0.1875,-0.0625],"type":"VEC3"},{"bufferView":21,"componentType":5126,"count":20,"max":[1,0,1],"min":[-1,-1,-1],"type":"VEC3"},{"bufferView":22,"componentType":5126,"count":20,"max":[0.34375,0.421875],"min":[0.046875,0.07996875047683716],"type":"VEC2"},{"bufferView":23,"componentType":5123,"count":30,"max":[19],"min":[0],"type":"SCALAR"},{"bufferView":24,"componentType":5126,"count":232,"max":[0.625,0.1875,0.0625],"min":[-0.5625,-0.75,-0.0625],"type":"VEC3"},{"bufferView":25,"componentType":5126,"count":232,"max":[1,1,1],"min":[-1,-1,-1],"type":"VEC3"},{"bufferView":26,"componentType":5126,"count":232,"max":[0.515625,0.421875],"min":[0,0],"type":"VEC2"},{"bufferView":27,"componentType":5123,"count":36,"max":[23],"min":[0],"type":"SCALAR"},{"bufferView":28,"componentType":5123,"count":312,"max":[231],"min":[24],"type":"SCALAR"},{"bufferView":29,"componentType":5126,"count":3,"max":[2],"min":[0],"type":"SCALAR"},{"bufferView":30,"componentType":5126,"count":3,"max":[0.30070579051971436,0,0,0.9537169337272644],"min":[-0.30070579051971436,0,0,0.9537169337272644],"type":"VEC4"},{"bufferView":31,"componentType":5126,"count":3,"max":[2],"min":[0],"type":"SCALAR"},{"bufferView":32,"componentType":5126,"count":3,"max":[0.30070579051971436,0,0,0.9537169337272644],"min":[-0.30070579051971436,0,0,0.9537169337272644],"type":"VEC4"}],"materials":[{"pbrMetallicRoughness":{"metallicFactor":0,"roughnessFactor":1,"baseColorTexture":{"index":0}},"alphaMode":"MASK","alphaCutoff":0.05,"doubleSided":true},{"pbrMetallicRoughness":{"metallicFactor":0,"roughnessFactor":1,"baseColorTexture":{"index":1}},"alphaMode":"MASK","alphaCutoff":0.05,"doubleSided":true}],"textures":[{"sampler":0,"source":0,"name":"texture"},{"sampler":1,"source":1,"name":"body"}],"samplers":[{"magFilter":9728,"minFilter":9728,"wrapS":33071,"wrapT":33071},{"magFilter":9728,"minFilter":9728,"wrapS":33071,"wrapT":33071}],"images":[{"mimeType":"image/png","uri":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAlklEQVR4AeyQMQ5FQBCGZ7d5L+EAEg1ROIhjuInCCdCocQKFROkYGh2FxAEoVCuzMsUmK0Rtk293Z/6ZP5PhYbcKIlhSgbT9JAi4ORx1xzLweYU0GJdNaa7SHAhF0AS8cGMgmnIHRFN3mZIT/GxfKairhBGKoAmkwT4PGulZiv+9jBFmFDHkWetZJSc4v+/uzwDg2wHAAQAA//9KIZDwAAAABklEQVQDABa8NiHKIeVyAAAAAElFTkSuQmCC"},{"mimeType":"image/png","uri":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAACAklEQVR4AeyXMU7DQBBF7W1AIgeIRAESBQ23gJKOkoorAFUOkAq4AhUlHSXcgoYCCQqkHCBIUDl5liJFlserXTuKdzxRnrLZnY1n/nxrHff3eV10RbZ8XVzdFrAcJvF2ZLmzf5y1hd9JkVKA/5+PrA6poKbY58e7HKS9fZt3u0cPuQSFVhNmToqvxqbw3c2n0wJI9nR2XwBjHy/v30VX+K61yfXyFtjkBfr+29ECnJ8c5F2xTZGiBeCok9hmQaHXjhYg9EJ9jY8WgKNOoq/F1uUVLYBkf+brLtTXOTeaTHIgwbfxTQ6MV3Dur7Oa1/LZ6ICmBx7J/synJI67fJ0XXUHh3ALAOAVKBxyO97K2pFBsXY6lAF+z36yOug3MNcVyCwBxfaSak3s6G+USFFrdwJwUX41N4bvjzw+QLH+KgLEP9gBx7AHGqVHeAqkl3WW+0QLwvAAkw3MEME6NaAFSK1TK1wSQlBnKvDnA12nO/XV88amtNzpA0wOP1JhGAaRNmuYdZzlQFGc5MB4K5oChdFqq0xwgKaNl3leHOcCnkPZ1c4D2DvvqMwf4FNK+bg7Q3mFffeYAn0La180B2jvsq88c4FNI+7o5QFuHQ+sxB4Qqpi3eHKCto6H1mANCFdMWbw7Q1tHQeswBoYppizcHaOtoaD3mgFDFtMWbA1LvaNv8FwAAAP//cTNCZAAAAAZJREFUAwD6PsKQeI9zvwAAAABJRU5ErkJggg=="}],"meshes":[{"primitives":[{"mode":4,"attributes":{"POSITION":0,"NORMAL":1,"TEXCOORD_0":2},"indices":3,"material":0}]},{"primitives":[{"mode":4,"attributes":{"POSITION":4,"NORMAL":5,"TEXCOORD_0":6},"indices":7,"material":1}]},{"primitives":[{"mode":4,"attributes":{"POSITION":8,"NORMAL":9,"TEXCOORD_0":10},"indices":11,"material":1}]},{"primitives":[{"mode":4,"attributes":{"POSITION":12,"NORMAL":13,"TEXCOORD_0":14},"indices":15,"material":1}]},{"primitives":[{"mode":4,"attributes":{"POSITION":16,"NORMAL":17,"TEXCOORD_0":18},"indices":19,"material":1}]},{"primitives":[{"mode":4,"attributes":{"POSITION":20,"NORMAL":21,"TEXCOORD_0":22},"indices":23,"material":1}]},{"primitives":[{"mode":4,"attributes":{"POSITION":24,"NORMAL":25,"TEXCOORD_0":26},"indices":27,"material":0},{"mode":4,"attributes":{"POSITION":24,"NORMAL":25,"TEXCOORD_0":26},"indices":28,"material":1}]}],"animations":[{"name":"walk","samplers":[{"input":29,"output":30,"interpolation":"LINEAR"},{"input":31,"output":32,"interpolation":"LINEAR"}],"channels":[{"sampler":0,"target":{"node":11,"path":"rotation"}},{"sampler":1,"target":{"node":9,"path":"rotation"}}]}]} \ No newline at end of file +version https://git-lfs.github.com/spec/v1 +oid sha256:7fc15bf4c4d30b9aa602bc9b545a669ddcaf4c6405959c6446598a0a8da5addf +size 31634 diff --git a/game/models/title_oak_tree/title_oak_tree.glb b/game/models/title_oak_tree/title_oak_tree.glb index 735cbe6..19859e5 100644 Binary files a/game/models/title_oak_tree/title_oak_tree.glb and b/game/models/title_oak_tree/title_oak_tree.glb differ diff --git a/game/models/tree/Low_poly_artistic_mod_1029220550_texture.glb b/game/models/tree/Low_poly_artistic_mod_1029220550_texture.glb index b08857b..1276ec7 100644 Binary files a/game/models/tree/Low_poly_artistic_mod_1029220550_texture.glb and b/game/models/tree/Low_poly_artistic_mod_1029220550_texture.glb differ diff --git a/game/models/tree_stump/Low_poly_artistic_mod_1029212559_texture.glb b/game/models/tree_stump/Low_poly_artistic_mod_1029212559_texture.glb index 40c3782..7ef3852 100644 Binary files a/game/models/tree_stump/Low_poly_artistic_mod_1029212559_texture.glb and b/game/models/tree_stump/Low_poly_artistic_mod_1029212559_texture.glb differ diff --git a/package.json b/package.json index a8c01ce..5d98fb2 100644 --- a/package.json +++ b/package.json @@ -4,11 +4,27 @@ "backend", "game" ], - "packageManager": "bun@1.3.0", + "type": "module", + "scripts": { + "docs:dev": "vitepress dev docs", + "docs:build": "vitepress build docs", + "docs:preview": "vitepress preview docs" + }, + "packageManager": "bun@1.3.1", "devDependencies": { - "turbo": "^2.5.8" + "mermaid": "^11.12.0", + "turbo": "^2.5.8", + "vitepress": "^1.6.4", + "vitepress-plugin-mermaid": "^2.0.17" }, "patchedDependencies": { - "@node-rs/bcrypt@1.10.7": "patches/@node-rs%2Fbcrypt@1.10.7.patch" + "@node-rs/bcrypt@1.10.7": "patches/@node-rs%2Fbcrypt@1.10.7.patch" + }, + "optionalDependencies": { + "@braintree/sanitize-url": "^7.1.1", + "cytoscape": "^3.33.1", + "cytoscape-cose-bilkent": "^4.1.0", + "dayjs": "^1.11.18", + "debug": "^4.4.3" } }