diff --git a/.cargo/config b/.cargo/config deleted file mode 100644 index ec26773..0000000 --- a/.cargo/config +++ /dev/null @@ -1,3 +0,0 @@ -[target.x86_64-unknown-linux-gnu] -linker = "clang" -rustflags = ["-Clink-arg=-fuse-ld=mold"] \ No newline at end of file diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..1169192 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,74 @@ +name: CI + +on: + pull_request: + push: + +jobs: + test: + strategy: + matrix: + os: [windows-latest, ubuntu-latest, macos-latest] + runs-on: ${{ matrix.os }} + steps: + - uses: actions/checkout@v3 + - uses: actions/cache@v3 + with: + path: | + ~/.cargo/bin/ + ~/.cargo/registry/index/ + ~/.cargo/registry/cache/ + ~/.cargo/git/db/ + target/ + key: ${{ runner.os }}-cargo-test-${{ hashFiles('**/Cargo.toml') }} + - uses: dtolnay/rust-toolchain@master + with: + toolchain: stable + - name: Install alsa and udev + run: apt-get update; apt-get install --no-install-recommends -y libasound2-dev libudev-dev + if: runner.os == 'linux' + - name: Build & run tests + run: cargo test + all-doc-tests: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/cache@v3 + with: + path: | + ~/.cargo/bin/ + ~/.cargo/registry/index/ + ~/.cargo/registry/cache/ + ~/.cargo/git/db/ + target/ + key: ubuntu-latest-cargo-all-doc-tests-${{ hashFiles('**/Cargo.toml') }} + - uses: dtolnay/rust-toolchain@master + with: + toolchain: stable + - name: Install alsa and udev + run: apt-get update; apt-get install --no-install-recommends -y libasound2-dev libudev-dev + - name: Run doc tests with all features (this also compiles README examples) + run: cargo test --doc --all-features + lint: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/cache@v3 + with: + path: | + ~/.cargo/bin/ + ~/.cargo/registry/index/ + ~/.cargo/registry/cache/ + ~/.cargo/git/db/ + target/ + key: ubuntu-latest-cargo-lint-${{ hashFiles('**/Cargo.toml') }} + - uses: dtolnay/rust-toolchain@master + with: + toolchain: stable + components: rustfmt, clippy + - name: Install alsa and udev + run: apt-get update; apt-get install --no-install-recommends -y libasound2-dev libudev-dev + - name: Run clippy + run: cargo clippy --workspace --all-targets --all-features -- -Dwarnings + - name: Check format + run: cargo fmt --all -- --check diff --git a/.github/workflows/deploy-page.yaml b/.github/workflows/deploy-page.yaml new file mode 100644 index 0000000..6b35fce --- /dev/null +++ b/.github/workflows/deploy-page.yaml @@ -0,0 +1,40 @@ +name: deploy-github-page + +on: + workflow_dispatch: + +permissions: + contents: write + +jobs: + build-web: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v3 + - name: Install rust toolchain + uses: dtolnay/rust-toolchain@master + with: + toolchain: stable + - name: Install Dependencies + run: sudo apt-get update; sudo apt-get install pkg-config libx11-dev libasound2-dev libudev-dev + - name: Install trunk + uses: jetli/trunk-action@v0.4.0 + with: + version: 'latest' + - name: Add wasm target + run: | + rustup target add wasm32-unknown-unknown + - name: Build Release + run: | + trunk build --release + - name: optimize Wasm + uses: NiklasEi/wasm-opt-action@v2 + with: + file: dist/*.wasm + - name: Deploy to GitHub Pages + uses: JamesIves/github-pages-deploy-action@v4.2.5 + with: + branch: gitea-pages + folder: dist diff --git a/.github/workflows/release-android-google-play.yaml b/.github/workflows/release-android-google-play.yaml new file mode 100644 index 0000000..23ca601 --- /dev/null +++ b/.github/workflows/release-android-google-play.yaml @@ -0,0 +1,76 @@ +# For setup instructions regarding this workflow, see https://www.nikl.me/blog/2023/github_workflow_to_publish_android_app/ + +name: release-android-google-play + +on: + workflow_dispatch: + inputs: + version: + description: 'GitHub Release' + required: true + type: string + play_release: + description: 'Release name from google play console' + required: true + type: string + +# ToDo: adapt names +env: + # used for uploading the app to a GitHub release + GAME_EXECUTABLE_NAME: ttt-ce + BUNDLE_PATH: "target/x/release/android/mobile.aab" + PACKAGE_NAME: "com.opencodebox.tttce" + # release track; you can promote a build to "higher" tracks in the play console or publish to a different track directly + # see track at https://github.com/r0adkll/upload-google-play#inputs for more options + TRACK: internal + MOBILE_DIRECTORY: mobile + +permissions: + contents: write + +jobs: + bundle-sign-release: + runs-on: ubuntu-latest + timeout-minutes: 40 + steps: + - name: Install Dependencies + run: sudo apt-get update; sudo apt-get install pkg-config libx11-dev libasound2-dev libudev-dev lld llvm + - uses: actions/checkout@v3 + - uses: dtolnay/rust-toolchain@stable + - name: Add Android targets + run: rustup target add aarch64-linux-android armv7-linux-androideabi + - name: Install cargo-binstall + run: curl -L --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/cargo-bins/cargo-binstall/main/install-from-binstall-release.sh | bash + - name: Install xbuild + run: cargo binstall --git https://github.com/NiklasEi/xbuild --bin-dir x xbuild -y + - name: Build app bundle + run: | + cd ${{ env.MOBILE_DIRECTORY }} + x doctor + x build --release --platform android --store play + - name: sign app bundle + run: | + KEYSTORE_PATH=${{ runner.temp }}/upload-keystore.jks + echo -n "${{ secrets.PLAYSTORE_KEYSTORE }}" | base64 --decode > $KEYSTORE_PATH + jarsigner -verbose -sigalg SHA256withRSA -digestalg SHA-256 -keystore $KEYSTORE_PATH -storepass "${{ secrets.PLAYSTORE_KEYSTORE_PASSWORD }}" ${{ env.BUNDLE_PATH }} upload + - name: Upload self-signed bundle to GitHub + uses: svenstaro/upload-release-action@v2 + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + file: ${{ env.BUNDLE_PATH }} + asset_name: ${{ env.GAME_EXECUTABLE_NAME }}_${{ inputs.version }}_android.aab + release_name: ${{ inputs.version }} + tag: ${{ inputs.version }} + overwrite: true + - name: prepare Google play store secrets + run: | + SERVICE_ACCOUNT=${{ runner.temp }}/service-account.json + echo -n "${{ secrets.PLAYSTORE_SERVICE_ACCOUNT }}" | base64 --decode > $SERVICE_ACCOUNT + - name: upload bundle to Google play store + uses: r0adkll/upload-google-play@v1 + with: + serviceAccountJson: ${{ runner.temp }}/service-account.json + packageName: ${{ env.PACKAGE_NAME }} + releaseName: ${{ inputs.play_release }} + releaseFiles: ${{ env.BUNDLE_PATH }} + track: ${{ env.TRACK }} diff --git a/.github/workflows/release-ios-testflight.yaml b/.github/workflows/release-ios-testflight.yaml new file mode 100644 index 0000000..3590082 --- /dev/null +++ b/.github/workflows/release-ios-testflight.yaml @@ -0,0 +1,98 @@ +name: release-ios-testflight + +# This workflow builds, archives, exports, validates and uploads your ios app. +# The version from input is only used for artifact names and as the release to upload the final ipa to. +# Bump the versions in `mobile/ios-src/Info.plist` to change the version of your app bundle. + +# Special setup and Apple Developer Program membership (99$/year) is required for this workflow! + +# For setup instructions, see https://www.nikl.me/blog/2023/github_workflow_to_publish_ios_app/ + +on: + workflow_dispatch: + inputs: + version: + description: 'Version - in the form of v1.2.3' + required: true + type: string + +# ToDo: adapt names +env: + # used for uploading the app to a GitHub release + GAME_EXECUTABLE_NAME: ttt-ce + XCODE_PROJECT: mobile + MOBILE_DIRECTORY: mobile + +permissions: + contents: write + +jobs: + build-for-iOS: + runs-on: macos-latest + timeout-minutes: 40 + steps: + - uses: actions/checkout@v3 + - uses: dtolnay/rust-toolchain@stable + - name: Add iOS targets + run: rustup target add aarch64-apple-ios + - name: Install the Apple certificate and provisioning profile + id: profile + env: + IOS_CERTIFICATE: ${{ secrets.IOS_CERTIFICATE }} + IOS_CERTIFICATE_PASSWORD: ${{ secrets.IOS_CERTIFICATE_PASSWORD }} + IOS_PROVISION_PROFILE: ${{ secrets.IOS_PROVISION_PROFILE }} + IOS_KEYCHAIN_PASSWORD: ${{ secrets.IOS_KEYCHAIN_PASSWORD }} + run: | + # create variables + CERTIFICATE_PATH=${{ runner.temp }}/build_certificate.p12 + PP_PATH=${{ runner.temp }}/profile.mobileprovision + KEYCHAIN_PATH=${{ runner.temp }}/app-signing.keychain-db + + # import certificate and provisioning profile from secrets + echo -n "$IOS_CERTIFICATE" | base64 --decode -o $CERTIFICATE_PATH + echo -n "$IOS_PROVISION_PROFILE" | base64 --decode -o $PP_PATH + uuid=`grep UUID -A1 -a $PP_PATH | grep -io "[-A-F0-9]\{36\}"` + echo "uuid=$uuid" >> $GITHUB_OUTPUT + + # create temporary keychain + security create-keychain -p "$IOS_KEYCHAIN_PASSWORD" $KEYCHAIN_PATH + security set-keychain-settings -lut 21600 $KEYCHAIN_PATH + security unlock-keychain -p "$IOS_KEYCHAIN_PASSWORD" $KEYCHAIN_PATH + + # import certificate to keychain + security import $CERTIFICATE_PATH -P "$IOS_CERTIFICATE_PASSWORD" -A -t cert -f pkcs12 -k $KEYCHAIN_PATH + security list-keychain -d user -s $KEYCHAIN_PATH + + # apply provisioning profile + mkdir -p ~/Library/MobileDevice/Provisioning\ Profiles + cp $PP_PATH ~/Library/MobileDevice/Provisioning\ Profiles/$uuid.mobileprovision + - name: Build app for iOS + run: | + cd ${{ env.MOBILE_DIRECTORY }} + xcodebuild PROVISIONING_PROFILE=${{ steps.profile.outputs.uuid }} -scheme ${{ env.XCODE_PROJECT }} clean archive -archivePath "Actions" -configuration Release -arch arm64 + - name: export ipa + env: + EXPORT_PLIST: ${{ secrets.IOS_EXPORT_PRODUCTION }} + run: | + EXPORT_PLIST_PATH=${{ runner.temp }}/ExportOptions.plist + echo -n "$EXPORT_PLIST" | base64 --decode --output $EXPORT_PLIST_PATH + xcodebuild PROVISIONING_PROFILE=${{ steps.profile.outputs.uuid }} -exportArchive -archivePath ${{ env.MOBILE_DIRECTORY }}/Actions.xcarchive -exportOptionsPlist $EXPORT_PLIST_PATH -exportPath ${{ runner.temp }}/export + - name: decode API key + env: + API_KEY_BASE64: ${{ secrets.IOS_APPSTORE_API_PRIVATE_KEY }} + run: | + mkdir -p ~/private_keys + echo -n "$API_KEY_BASE64" | base64 --decode --output ~/private_keys/AuthKey_${{ secrets.IOS_APPSTORE_API_KEY_ID }}.p8 + - name: Upload to testflight + run: | + xcrun altool --validate-app -f ${{ runner.temp }}/export/${{ env.XCODE_PROJECT }}.ipa -t ios --apiKey ${{ secrets.IOS_APPSTORE_API_KEY_ID }} --apiIssuer ${{ secrets.IOS_APPSTORE_ISSUER_ID }} + xcrun altool --upload-app -f ${{ runner.temp }}/export/${{ env.XCODE_PROJECT }}.ipa -t ios --apiKey ${{ secrets.IOS_APPSTORE_API_KEY_ID }} --apiIssuer ${{ secrets.IOS_APPSTORE_ISSUER_ID }} + - name: Upload release + uses: svenstaro/upload-release-action@v2 + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + file: ${{ runner.temp }}/export/${{ env.XCODE_PROJECT }}.ipa + asset_name: ${{ env.GAME_EXECUTABLE_NAME }}_${{ inputs.version }}_ios.ipa + release_name: ${{ inputs.version }} + tag: ${{ inputs.version }} + overwrite: true diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml new file mode 100644 index 0000000..a8db05e --- /dev/null +++ b/.github/workflows/release.yaml @@ -0,0 +1,268 @@ +name: release-flow + +on: + push: + tags: + - "v[0-9]+.[0-9]+.[0-9]+*" + workflow_dispatch: + inputs: + version: + description: 'Version - in the form of v1.2.3' + required: true + type: string + +# ToDo: adapt names +env: + # This variable is used to name release output files. + GAME_EXECUTABLE_NAME: ttt-ce + GAME_OSX_APP_NAME: TTTCE + +permissions: + contents: write + +jobs: + get-version: + runs-on: ubuntu-latest + steps: + - name: Get tag + id: tag + run: echo "tag=${GITHUB_REF#refs/tags/}" >> "$GITHUB_OUTPUT" + outputs: + version: ${{ inputs.version || steps.tag.outputs.tag }} + + build-macOS: + runs-on: macos-latest + needs: get-version + env: + # macOS 11.0 Big Sur is the first version to support universal binaries + MACOSX_DEPLOYMENT_TARGET: 11.0 + VERSION: ${{needs.get-version.outputs.version}} + steps: + - name: Checkout repository + uses: actions/checkout@v3 + - name: Remove build script + run: | + rm build.rs + - name: Install rust toolchain for Apple Silicon + uses: dtolnay/rust-toolchain@master + with: + toolchain: stable + targets: aarch64-apple-darwin + - name: Build release for Apple Silicon + run: | + SDKROOT=$(xcrun -sdk macosx --show-sdk-path) cargo build --profile dist --target=aarch64-apple-darwin + - name: Install rust toolchain for Apple x86 + uses: dtolnay/rust-toolchain@master + with: + toolchain: stable + targets: x86_64-apple-darwin + - name: Build release for x86 Apple + run: | + SDKROOT=$(xcrun -sdk macosx --show-sdk-path) cargo build --profile dist --target=x86_64-apple-darwin + - name: Create Universal Binary + run: | + lipo -create -output target/dist/${{ env.GAME_EXECUTABLE_NAME }} target/aarch64-apple-darwin/dist/${{ env.GAME_EXECUTABLE_NAME }} target/x86_64-apple-darwin/dist/${{ env.GAME_EXECUTABLE_NAME }} + - name: Create release + run: | + mkdir -p build/macos/src/Game.app/Contents/MacOS/assets + cp -r assets/ build/macos/src/Game.app/Contents/MacOS/assets + cp -r credits/ build/macos/src/Game.app/Contents/MacOS/credits + cp target/dist/${{ env.GAME_EXECUTABLE_NAME }} build/macos/src/Game.app/Contents/MacOS/ + mv build/macos/src/Game.app build/macos/src/${{ env.GAME_OSX_APP_NAME }}.app + ln -s /Applications build/macos/src/ + hdiutil create -fs HFS+ -volname "${{ env.GAME_OSX_APP_NAME }}" -srcfolder build/macos/src ${{ env.GAME_EXECUTABLE_NAME }}.dmg + - name: Upload release + uses: svenstaro/upload-release-action@v2 + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + file: ${{ env.GAME_EXECUTABLE_NAME }}.dmg + asset_name: ${{ env.GAME_EXECUTABLE_NAME }}_${{ env.VERSION }}_macOS.dmg + release_name: ${{ env.VERSION }} + tag: ${{ env.VERSION }} + overwrite: true + + build-linux: + runs-on: ubuntu-latest + needs: get-version + env: + VERSION: ${{needs.get-version.outputs.version}} + steps: + - name: Checkout repository + uses: actions/checkout@v3 + - name: Install rust toolchain + uses: dtolnay/rust-toolchain@master + with: + toolchain: stable + - name: Install Dependencies + run: sudo apt-get update; sudo apt-get install pkg-config libx11-dev libasound2-dev libudev-dev + - name: Build release + run: | + cargo build --profile dist + - name: Prepare release + run: | + chmod +x target/dist/${{ env.GAME_EXECUTABLE_NAME }} + mv target/dist/${{ env.GAME_EXECUTABLE_NAME }} . + - name: Bundle release + run: | + tar -czf ${{ env.GAME_EXECUTABLE_NAME }}_linux.tar.gz ${{ env.GAME_EXECUTABLE_NAME }} assets credits + - name: Upload release + uses: svenstaro/upload-release-action@v2 + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + file: ${{ env.GAME_EXECUTABLE_NAME }}_linux.tar.gz + asset_name: ${{ env.GAME_EXECUTABLE_NAME }}_${{ env.VERSION }}_linux.tar.gz + release_name: ${{ env.VERSION }} + tag: ${{ env.VERSION }} + overwrite: true + + build-windows: + runs-on: windows-latest + needs: get-version + env: + VERSION: ${{needs.get-version.outputs.version}} + BUILD_INSTALLER: ${{ false }} + steps: + - name: Checkout repository + uses: actions/checkout@v3 + - name: Install rust toolchain + uses: dtolnay/rust-toolchain@master + with: + toolchain: stable + - name: Install dotnet + if: ${{ env.BUILD_INSTALLER }} + uses: actions/setup-dotnet@v3 + with: + global-json-file: build/windows/installer/global.json + - name: Build release + run: | + cargo build --profile dist + - name: Prepare release + run: | + mkdir target/dist/assets && cp -r assets target/dist/assets + mkdir target/dist/credits && cp -r credits target/dist/credits + - name: Zip release + uses: vimtor/action-zip@v1.1 + with: + files: target/dist/assets/ target/dist/credits/ target/dist/${{ env.GAME_EXECUTABLE_NAME }}.exe + dest: ${{ env.GAME_EXECUTABLE_NAME }}_windows.zip + - name: Create Installer + if: ${{ env.BUILD_INSTALLER }} + run: dotnet build -p:Version=${{ env.VERSION }} -c Release build/windows/installer/Installer.wixproj --output installer + - name: Upload release + uses: svenstaro/upload-release-action@v2 + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + file: ${{ env.GAME_EXECUTABLE_NAME }}_windows.zip + asset_name: ${{ env.GAME_EXECUTABLE_NAME }}_${{ env.VERSION }}_windows.zip + tag: ${{ env.VERSION }} + overwrite: true + - name: Upload installer + if: ${{ env.BUILD_INSTALLER }} + uses: svenstaro/upload-release-action@v2 + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + file: installer/en-US/installer.msi + asset_name: ${{ env.GAME_EXECUTABLE_NAME }}_${{ env.VERSION }}_windows.msi + release_name: ${{ env.VERSION }} + tag: ${{ env.VERSION }} + overwrite: true + + build-web: + runs-on: ubuntu-latest + needs: get-version + env: + VERSION: ${{needs.get-version.outputs.version}} + steps: + - name: Checkout repository + uses: actions/checkout@v3 + - name: Install rust toolchain + uses: dtolnay/rust-toolchain@master + with: + toolchain: stable + - name: Install Dependencies + run: sudo apt-get update; sudo apt-get install pkg-config libx11-dev libasound2-dev libudev-dev + - name: Install trunk + uses: jetli/trunk-action@v0.4.0 + with: + version: latest + - name: Add wasm target + run: | + rustup target add wasm32-unknown-unknown + - name: Build Release + run: | + trunk build --release + - name: Optimize Wasm + uses: NiklasEi/wasm-opt-action@v2 + with: + file: dist/*.wasm + - name: Zip release + uses: vimtor/action-zip@v1.1 + with: + files: dist/ + dest: ${{ env.GAME_EXECUTABLE_NAME }}_web.zip + - name: Upload release + uses: svenstaro/upload-release-action@v2 + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + file: ${{ env.GAME_EXECUTABLE_NAME }}_web.zip + asset_name: ${{ env.GAME_EXECUTABLE_NAME }}_${{ env.VERSION }}_web.zip + release_name: ${{ env.VERSION }} + tag: ${{ env.VERSION }} + overwrite: true + + build-for-iOS: + runs-on: macos-latest + timeout-minutes: 30 + needs: get-version + env: + VERSION: ${{needs.get-version.outputs.version}} + steps: + - uses: actions/checkout@v3 + - uses: dtolnay/rust-toolchain@stable + - name: Add iOS targets + run: rustup target add aarch64-apple-ios x86_64-apple-ios + - name: Build app for iOS + run: | + cd mobile + make xcodebuild-iphone-release + mkdir Payload + mv build/Build/Products/Release-iphoneos/*.app Payload + zip -r ${{ env.GAME_EXECUTABLE_NAME }}.zip Payload + mv ${{ env.GAME_EXECUTABLE_NAME }}.zip ${{ env.GAME_EXECUTABLE_NAME }}.ipa + - name: Upload release + uses: svenstaro/upload-release-action@v2 + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + file: mobile/${{ env.GAME_EXECUTABLE_NAME }}.ipa + asset_name: ${{ env.GAME_EXECUTABLE_NAME }}_${{ env.VERSION }}_unsigned_ios.ipa + release_name: ${{ env.VERSION }} + tag: ${{ env.VERSION }} + overwrite: true + + build-for-Android: + runs-on: ubuntu-latest + timeout-minutes: 30 + needs: get-version + env: + VERSION: ${{needs.get-version.outputs.version}} + steps: + - uses: actions/checkout@v3 + - uses: dtolnay/rust-toolchain@stable + - name: Add Android targets + # could add more targets like armv7-linux-androideabi here (then also add to cargo-apk config) + run: rustup target add aarch64-linux-android + - name: Install Cargo APK + run: cargo install --force cargo-apk + - name: Build app for Android + # This uses a debug build, since release builds require keystore configuration + # For AAB builds that can be pushed to the Play store, see the release-android-google-play workflow. + run: ANDROID_NDK_ROOT=$ANDROID_NDK_LATEST_HOME cargo apk build --package mobile + - name: Upload release + uses: svenstaro/upload-release-action@v2 + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + file: target/debug/apk/${{ env.GAME_OSX_APP_NAME }}.apk + asset_name: ${{ env.GAME_EXECUTABLE_NAME }}_${{ env.VERSION }}_android.apk + release_name: ${{ env.VERSION }} + tag: ${{ env.VERSION }} + overwrite: true diff --git a/.gitignore b/.gitignore index ea8c4bf..f2401c7 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,5 @@ -/target +target/ +.idea/ +.DS_Store + +dist/ diff --git a/.vscode/launch.json b/.vscode/launch.json index a3aa1ff..353de75 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -1,25 +1,76 @@ { + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ + // this config bypasses waiting for debugger attachment, increasing speed + { + "name": "Quick Launch (nix-shell)", + "type": "node-terminal", + "request": "launch", + "command": "nix-shell --run 'cargo run --features dev'", + }, { "command": "steam-run ./target/debug/ttt-ce", - "name": "Run program", + "name": "Run compiled (steam-run)", "request": "launch", "type": "node-terminal" }, { - "command": "nix-shell --run 'cargo run'", - "name": "Build and Run program", + "type": "lldb", "request": "launch", - "type": "node-terminal" + "name": "Debug", + "cargo": { + "args": [ + "build", + "--bin=ttt-ce", + "--package=ttt-ce", + "--features", + "dev" + ], + "filter": { + "name": "ttt-ce", + "kind": "bin" + }, + }, + "args": [], + "cwd": "${workspaceFolder}", + "env": { + "CARGO_MANIFEST_DIR": "${workspaceFolder}", + }, + "linux": { + "env": { + // platform-specific launch config overwrites (rather than merges with) existing config, so need to specify CARGO_MANIFEST_DIR again + "CARGO_MANIFEST_DIR": "${workspaceFolder}", + "LD_LIBRARY_PATH": "${env:LD_LIBRARY_PATH}:${workspaceFolder}/target/debug:${env:HOME}/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib:${env:HOME}/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib" + } + } }, { - "command": "nix-shell --run 'cargo run --features bevy/dynamic_linking'", - "name": "Mold build and run program", + "type": "lldb", "request": "launch", - "type": "node-terminal" - }, - - ], - "compounds": [] + "name": "Debug unit tests", + "cargo": { + "args": [ + "test", + "--no-run", + "--bin=ttt-ce", + "--package=ttt-ce", + "--features", + "dev" + ], + "filter": { + "name": "ttt-ce", + "kind": "bin" + } + }, + "args": [], + "cwd": "${workspaceFolder}", + "env": { + "CARGO_MANIFEST_DIR": "${workspaceFolder}", + "LD_LIBRARY_PATH": "${env:LD_LIBRARY_PATH}:${workspaceFolder}/target/debug:${env:HOME}/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib:${env:HOME}/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib" + } + } + ] } diff --git a/.vscode/tasks.json b/.vscode/tasks.json index a15b6da..683cde1 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -4,7 +4,21 @@ "version": "2.0.0", "tasks": [ { - "label": "nix-shell-cargo-build", + "label": "nix-shell-cargo-build-dev", + "type": "shell", + "command": "nix-shell", + "args": [ + "--run", + "cargo build --features dev" + ], + "group": { + "kind": "build", + "isDefault": true + }, + "problemMatcher": [] + }, + { + "label": "nix-shell-cargo-build-release", "type": "shell", "command": "nix-shell", "args": [ diff --git a/Bevy-template-README.md b/Bevy-template-README.md new file mode 100644 index 0000000..eab40ff --- /dev/null +++ b/Bevy-template-README.md @@ -0,0 +1,100 @@ +# A Bevy game template + +Template for a Game using the awesome [Bevy engine][bevy] featuring out of the box builds for Windows, Linux, macOS, Web (Wasm), Android, and iOS. + +# What does this template give you? + +* small example ["game"](https://niklasei.github.io/ttt-ce_template/) +* easy setup for running the web build using [trunk] (`trunk serve`) +* run the native version with `cargo run` +* workflow for GitHub actions creating releases for Windows, Linux, macOS, and Web (Wasm) ready for distribution + * the same workflow creates development builds for the mobile platforms (two separate workflows can push to the stores after [some setup](#deploy-mobile-platforms)) + * push a tag in the form of `v[0-9]+.[0-9]+.[0-9]+*` (e.g. `v1.1.42`) to trigger the flow + * WARNING: if you work in a private repository, please be aware that macOS and Windows runners cost more build minutes. **For public repositories the builds are free!** + +# How to use this template? + + 1. Click "Use this template" on the repository's page + 2. Look for `ToDo` to use your own game name everywhere + 3. [Update the icons as described below](#updating-the-icons) + 4. Start coding :tada: + * Start the native app: `cargo run` + * Start the web build: `trunk serve` + * requires [trunk]: `cargo install --locked trunk` + * requires `wasm32-unknown-unknown` target: `rustup target add wasm32-unknown-unknown` + * this will serve your app on `8080` and automatically rebuild + reload it after code changes + * Start the android app: `cargo apk run -p mobile` + * requires following the instructions in the [bevy example readme for android setup][android-instructions] + * Start the iOS app (see the [bevy example readme for ios setup instructions][ios-instructions]) + * Install Xcode through the app store + * Launch Xcode and install the iOS simulator (check the box upon first start, or install it through `Preferences > Platforms` later) + * Install the iOS and iOS simulator Rust targets with `rustup target add aarch64-apple-ios x86_64-apple-ios aarch64-apple-ios-sim` + * run `make run` inside the `/mobile` directory + +You should keep the `credits` directory up to date. The release workflow automatically includes the directory in every build. + +### Updating the icons + 1. Replace `build/macos/icon_1024x1024.png` with a `1024` times `1024` pixel png icon and run `create_icns.sh` or `create_icns_linux.sh` if you use linux (make sure to run the script inside the `build/macos` directory) - _Note: `create_icns.sh` requires a mac, and `create_icns_linux.sh` requires imagemagick and png2icns_ + 2. Replace `build/windows/icon.ico` (used for windows executable and as favicon for the web-builds) + * You can create an `.ico` file for windows by following these steps: + 1. Open `macos/AppIcon.iconset/icon_256x256.png` in [Gimp](https://www.gimp.org/downloads/) + 2. Select the `File > Export As` menu item. + 3. Change the file extension to `.ico` (or click `Select File Type (By Extension)` and select `Microsoft Windows Icon`) + 4. Save as `build/windows/icon.ico` + 3. Replace `build/android/res/mipmap-mdpi/icon.png` with `macos/AppIcon.iconset/icon_256x256.png`, but rename it to `icon.png` + +### Deploy web build to GitHub pages + + 1. Trigger the `deploy-github-page` workflow + 2. Activate [GitHub pages](https://pages.github.com/) for your repository + 1. Source from the `gh-pages` branch (created by the just executed action) + 3. After a few minutes your game is live at `http://username.github.io/repository` + +To deploy newer versions, just run the `deploy-github-page` workflow again. + +# Deploy mobile platforms + +For general info on mobile support, you can take a look at [one of my blog posts about mobile development with Bevy][mobile_dev_with_bevy_2] which is relevant to the current setup. + +## Android + +Currently, `cargo-apk` is used to run the development app. But APKs can no longer be published in the store and `cargo-apk` cannot produce the required AAB. This is why there is setup for two android related tools. In [`mobile/Cargo.toml`](./mobile/Cargo.toml), the `package.metadata.android` section configures `cargo-apk` while [`mobile/manifest.yaml`](./mobile/manifest.yaml) configures a custom fork of `xbuild` which is used in the `release-android-google-play` workflow to create an AAB. + +There is a [post about how to set up the android release workflow][workflow_bevy_android] on my blog. + +## iOS + +The setup is pretty much what Bevy does for the mobile example. + +There is a [post about how to set up the iOS release workflow][workflow_bevy_ios] on my blog. + +# Removing mobile platforms + +If you don't want to target Android or iOS, you can just delete the `/mobile`, `/build/android`, and `/build/ios` directories. +Then delete the `[workspace]` section from `Cargo.toml`. + +# Getting started with Bevy + +You should check out the Bevy website for [links to resources][bevy-learn] and the [Bevy Cheat Book] for a bunch of helpful documentation and examples. I can also recommend the [official Bevy Discord server][bevy-discord] for keeping up to date with the development and getting help from other Bevy users. + +# Known issues + +Audio in web-builds can have issues in some browsers. This seems to be a general performance issue and not due to the audio itself (see [bevy_kira_audio/#9][firefox-sound-issue]). + +# License + +This project is licensed under [CC0 1.0 Universal](LICENSE) except some content of `assets` and the Bevy icons in the `build` directory (see [Credits](credits/CREDITS.md)). Go crazy and feel free to show me whatever you build with this ([@nikl_me][nikl-twitter] / [@nikl_me@mastodon.online][nikl-mastodon] ). + +[bevy]: https://bevyengine.org/ +[bevy-learn]: https://bevyengine.org/learn/ +[bevy-discord]: https://discord.gg/bevy +[nikl-twitter]: https://twitter.com/nikl_me +[nikl-mastodon]: https://mastodon.online/@nikl_me +[firefox-sound-issue]: https://github.com/NiklasEi/bevy_kira_audio/issues/9 +[Bevy Cheat Book]: https://bevy-cheatbook.github.io/introduction.html +[trunk]: https://trunkrs.dev/ +[android-instructions]: https://github.com/bevyengine/bevy/blob/latest/examples/README.md#setup +[ios-instructions]: https://github.com/bevyengine/bevy/blob/latest/examples/README.md#setup-1 +[mobile_dev_with_bevy_2]: https://www.nikl.me/blog/2023/notes_on_mobile_development_with_bevy_2/ +[workflow_bevy_android]: https://www.nikl.me/blog/2023/github_workflow_to_publish_android_app/ +[workflow_bevy_ios]: https://www.nikl.me/blog/2023/github_workflow_to_publish_ios_app/ diff --git a/Cargo.lock b/Cargo.lock index 7260eac..2ec0293 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -169,6 +169,12 @@ dependencies = [ "libc", ] +[[package]] +name = "anyhow" +version = "1.0.81" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0952808a6c2afd1aa8947271f3a60f1a6763c7b912d210184c5149b5cf147247" + [[package]] name = "approx" version = "0.5.1" @@ -289,6 +295,12 @@ version = "4.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fbb36e985947064623dbd357f727af08ffd077f93d696782f3c56365fa2e2799" +[[package]] +name = "atomic-arena" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5450eca8ce5abcfd5520727e975ebab30ccca96030550406b0ca718b224ead10" + [[package]] name = "atomic-waker" version = "1.1.2" @@ -297,9 +309,9 @@ checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" [[package]] name = "autocfg" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" [[package]] name = "base64" @@ -313,6 +325,7 @@ version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ea370412c322af887c9115442d8f2ec991b652f163a1d8920ecaf08cae63f2bc" dependencies = [ + "bevy_dylib", "bevy_internal", ] @@ -353,7 +366,7 @@ checksum = "b3c488161a04a123e10273e16d4533945943fcfcf345f066242790e8977aee2d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.55", ] [[package]] @@ -435,6 +448,29 @@ dependencies = [ "web-sys", ] +[[package]] +name = "bevy_asset_loader" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "504cac33f47bee039c0706c9c5baf72208e5bd515db3840dc0cf57fd857914f4" +dependencies = [ + "anyhow", + "bevy", + "bevy_asset_loader_derive", + "path-slash", +] + +[[package]] +name = "bevy_asset_loader_derive" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adda0f1b91d2e34b132ea29a14dbe2adf273073c168950603ebddaf53a23947f" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.55", +] + [[package]] name = "bevy_asset_macros" version = "0.13.1" @@ -444,25 +480,7 @@ dependencies = [ "bevy_macro_utils", "proc-macro2", "quote", - "syn 2.0.53", -] - -[[package]] -name = "bevy_audio" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0af1796b7e56c2f49de5be72fb2aadb8f9310d6173d70040fd2eff1c7cb29009" -dependencies = [ - "bevy_app", - "bevy_asset", - "bevy_derive", - "bevy_ecs", - "bevy_math", - "bevy_reflect", - "bevy_transform", - "bevy_utils", - "cpal", - "rodio", + "syn 2.0.55", ] [[package]] @@ -510,7 +528,7 @@ checksum = "7de77523d154e220a740e568a89f52fac7de481374bdecbbbeb283a37580ba34" dependencies = [ "bevy_macro_utils", "quote", - "syn 2.0.53", + "syn 2.0.55", ] [[package]] @@ -567,7 +585,7 @@ dependencies = [ "bevy_macro_utils", "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.55", ] [[package]] @@ -682,7 +700,7 @@ dependencies = [ "bevy_macro_utils", "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.55", ] [[package]] @@ -754,7 +772,6 @@ dependencies = [ "bevy_animation", "bevy_app", "bevy_asset", - "bevy_audio", "bevy_core", "bevy_core_pipeline", "bevy_derive", @@ -783,6 +800,20 @@ dependencies = [ "bevy_winit", ] +[[package]] +name = "bevy_kira_audio" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bf58fed4b6fd13df35e77002821cf459948131de4ac262c3b6a175d8fe28fd3" +dependencies = [ + "anyhow", + "bevy", + "kira", + "parking_lot", + "thiserror", + "uuid", +] + [[package]] name = "bevy_log" version = "0.13.1" @@ -808,7 +839,7 @@ dependencies = [ "proc-macro2", "quote", "rustc-hash", - "syn 2.0.53", + "syn 2.0.55", "toml_edit", ] @@ -904,7 +935,7 @@ dependencies = [ "bevy_macro_utils", "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.55", "uuid", ] @@ -962,7 +993,7 @@ dependencies = [ "bevy_macro_utils", "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.55", ] [[package]] @@ -1130,7 +1161,7 @@ checksum = "014c80f466ed01821a2e602d63cd5076915c1af5de5fa3c074cc4a9ca898ada7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.55", ] [[package]] @@ -1199,7 +1230,7 @@ source = "git+https://git.opencodebox.com/MikolajG/bevy_xpbd?branch=reflect-seri dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.55", ] [[package]] @@ -1219,7 +1250,7 @@ dependencies = [ "regex", "rustc-hash", "shlex", - "syn 2.0.53", + "syn 2.0.55", ] [[package]] @@ -1359,7 +1390,7 @@ checksum = "4da9a32f3fed317401fa3c862968128267c3106685286e15d5aaa3d7389c2f60" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.55", ] [[package]] @@ -1388,18 +1419,6 @@ dependencies = [ "thiserror", ] -[[package]] -name = "calloop-wayland-source" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f0ea9b9476c7fad82841a8dbb380e2eae480c21910feba80725b46931ed8f02" -dependencies = [ - "calloop", - "rustix", - "wayland-backend", - "wayland-client", -] - [[package]] name = "cc" version = "1.0.90" @@ -1828,6 +1847,19 @@ dependencies = [ "bytemuck", ] +[[package]] +name = "embed-resource" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e62abb876c07e4754fae5c14cafa77937841f01740637e17d78dc04352f32a5e" +dependencies = [ + "cc", + "rustc_version", + "toml", + "vswhom", + "winreg", +] + [[package]] name = "encase" version = "0.7.0" @@ -1857,7 +1889,16 @@ checksum = "92959a9e8d13eaa13b8ae8c7b583c3bf1669ca7a8e7708a088d12587ba86effc" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.55", +] + +[[package]] +name = "encoding_rs" +version = "0.8.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1" +dependencies = [ + "cfg-if", ] [[package]] @@ -1965,9 +2006,9 @@ dependencies = [ [[package]] name = "fastrand" -version = "2.0.1" +version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" +checksum = "658bd65b1cf4c852a3cc96f18a8ce7b5640f6b703f905c7d74532294c2a63984" [[package]] name = "fdeflate" @@ -2018,7 +2059,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.55", ] [[package]] @@ -2188,7 +2229,7 @@ dependencies = [ "inflections", "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.55", ] [[package]] @@ -2323,6 +2364,12 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" +[[package]] +name = "hermit-abi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" + [[package]] name = "hexasphere" version = "10.0.0" @@ -2507,6 +2554,21 @@ version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2db585e1d738fc771bf08a151420d3ed193d9d895a36df7f6f8a9456b911ddc" +[[package]] +name = "kira" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8968f1eda49cdf4f6406fd5ffe590c3ca2778a1b0e50b5684974b138a99dfb2f" +dependencies = [ + "atomic-arena", + "cpal", + "glam", + "mint", + "ringbuf", + "send_wrapper", + "symphonia", +] + [[package]] name = "ktx2" version = "0.3.0" @@ -2528,17 +2590,6 @@ version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" -[[package]] -name = "lewton" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "777b48df9aaab155475a83a7df3070395ea1ac6902f5cd062b8f2b028075c030" -dependencies = [ - "byteorder", - "ogg", - "tinyvec", -] - [[package]] name = "libc" version = "0.2.153" @@ -2657,15 +2708,6 @@ version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" -[[package]] -name = "memmap2" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe751422e4a8caa417e13c3ea66452215d7d63e19e604f4980461212f3ae1322" -dependencies = [ - "libc", -] - [[package]] name = "metal" version = "0.27.0" @@ -2703,6 +2745,15 @@ version = "0.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e53debba6bda7a793e5f99b8dacf19e626084f525f7829104ba9898f367d85ff" +[[package]] +name = "mobile" +version = "0.1.0" +dependencies = [ + "bevy", + "cpal", + "ttt-ce", +] + [[package]] name = "naga" version = "0.19.2" @@ -2881,7 +2932,7 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.55", ] [[package]] @@ -2932,7 +2983,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.55", ] [[package]] @@ -3045,15 +3096,6 @@ dependencies = [ "cc", ] -[[package]] -name = "ogg" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6951b4e8bf21c8193da321bcce9c9dd2e13c858fe078bf9054a288b419ae5d6e" -dependencies = [ - "byteorder", -] - [[package]] name = "once_cell" version = "1.19.0" @@ -3126,9 +3168,9 @@ dependencies = [ [[package]] name = "parry3d" -version = "0.13.6" +version = "0.13.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13d0bdaf533851feec5cba9af11cefcc753ecefba05f758cf6abe886086bc3f5" +checksum = "6ccba18a65dba56c08dadfa936e0c9efbc883b3a26dc77d2685f78be10f7667c" dependencies = [ "approx", "arrayvec", @@ -3148,9 +3190,9 @@ dependencies = [ [[package]] name = "parry3d-f64" -version = "0.13.6" +version = "0.13.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368eb8be4f9f4b6669474f092a954cb94151cc57b097b95acab3b30ed4c4164f" +checksum = "d259245abcc09379798e4d373d9019e0df4dc6f7f128ecd68700a5927dc32034" dependencies = [ "approx", "arrayvec", @@ -3174,6 +3216,12 @@ version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" +[[package]] +name = "path-slash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e91099d4268b0e11973f036e885d652fb0b21fedcf69738c627f94db6a44f42" + [[package]] name = "percent-encoding" version = "2.3.1" @@ -3228,12 +3276,13 @@ dependencies = [ [[package]] name = "polling" -version = "3.5.0" +version = "3.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24f040dee2588b4963afb4e420540439d126f73fdacf4a9c486a96d840bac3c9" +checksum = "e0c976a60b2d7e99d6f229e414670a9b85d13ac305cc6d1e9c134de58c5aaaf6" dependencies = [ "cfg-if", "concurrent-queue", + "hermit-abi", "pin-project-lite", "rustix", "tracing", @@ -3249,6 +3298,12 @@ dependencies = [ "unicode-xid", ] +[[package]] +name = "ppv-lite86" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" + [[package]] name = "presser" version = "0.3.1" @@ -3309,15 +3364,6 @@ version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43d84d1d7a6ac92673717f9f6d1518374ef257669c24ebc5ac25d5033828be58" -[[package]] -name = "quick-xml" -version = "0.31.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1004a344b30a54e2ee58d66a71b32d2db2feb0a31f9a2d302bf0536f15de2a33" -dependencies = [ - "memchr", -] - [[package]] name = "quote" version = "1.0.35" @@ -3333,6 +3379,36 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "17fd96390ed3feda12e1dfe2645ed587e0bea749e319333f104a33ff62f77a0b" +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha", + "rand_core", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom", +] + [[package]] name = "range-alloc" version = "0.1.3" @@ -3359,9 +3435,9 @@ checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" [[package]] name = "rayon" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4963ed1bc86e4f3ee217022bd855b297cef07fb9eac5dfa1f788b220b49b3bd" +checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" dependencies = [ "either", "rayon-core", @@ -3451,22 +3527,21 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "19b30a45b0cd0bcca8037f3d0dc3421eaf95327a17cad11964fb8179b4fc4832" +[[package]] +name = "ringbuf" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79abed428d1fd2a128201cec72c5f6938e2da607c6f3745f769fabea399d950a" +dependencies = [ + "crossbeam-utils", +] + [[package]] name = "robust" version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cbf4a6aa5f6d6888f39e980649f3ad6b666acdce1d78e95b8a2cb076e687ae30" -[[package]] -name = "rodio" -version = "0.17.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b1bb7b48ee48471f55da122c0044fcc7600cfcc85db88240b89cb832935e611" -dependencies = [ - "cpal", - "lewton", -] - [[package]] name = "ron" version = "0.8.1" @@ -3542,37 +3617,24 @@ dependencies = [ "winapi-util", ] -[[package]] -name = "scoped-tls" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" - [[package]] name = "scopeguard" version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" -[[package]] -name = "sctk-adwaita" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82b2eaf3a5b264a521b988b2e73042e742df700c4f962cde845d1541adb46550" -dependencies = [ - "ab_glyph", - "log", - "memmap2", - "smithay-client-toolkit", - "tiny-skia", -] - [[package]] name = "semver" version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca" +[[package]] +name = "send_wrapper" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" + [[package]] name = "serde" version = "1.0.197" @@ -3590,7 +3652,7 @@ checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.55", ] [[package]] @@ -3665,31 +3727,6 @@ dependencies = [ "serde", ] -[[package]] -name = "smithay-client-toolkit" -version = "0.18.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "922fd3eeab3bd820d76537ce8f582b1cf951eceb5475c28500c7457d9d17f53a" -dependencies = [ - "bitflags 2.5.0", - "calloop", - "calloop-wayland-source", - "cursor-icon", - "libc", - "log", - "memmap2", - "rustix", - "thiserror", - "wayland-backend", - "wayland-client", - "wayland-csd-frame", - "wayland-cursor", - "wayland-protocols", - "wayland-protocols-wlr", - "wayland-scanner", - "xkeysym", -] - [[package]] name = "smol_str" version = "0.2.1" @@ -3726,18 +3763,83 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" -[[package]] -name = "strict-num" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6637bab7722d379c8b41ba849228d680cc12d0a45ba1fa2b48f2a30577a06731" - [[package]] name = "svg_fmt" version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f83ba502a3265efb76efb89b0a2f7782ad6f2675015d4ce37e4b547dda42b499" +[[package]] +name = "symphonia" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "815c942ae7ee74737bb00f965fa5b5a2ac2ce7b6c01c0cc169bbeaf7abd5f5a9" +dependencies = [ + "lazy_static", + "symphonia-codec-vorbis", + "symphonia-core", + "symphonia-format-ogg", + "symphonia-metadata", +] + +[[package]] +name = "symphonia-codec-vorbis" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a98765fb46a0a6732b007f7e2870c2129b6f78d87db7987e6533c8f164a9f30" +dependencies = [ + "log", + "symphonia-core", + "symphonia-utils-xiph", +] + +[[package]] +name = "symphonia-core" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "798306779e3dc7d5231bd5691f5a813496dc79d3f56bf82e25789f2094e022c3" +dependencies = [ + "arrayvec", + "bitflags 1.3.2", + "bytemuck", + "lazy_static", + "log", +] + +[[package]] +name = "symphonia-format-ogg" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ada3505789516bcf00fc1157c67729eded428b455c27ca370e41f4d785bfa931" +dependencies = [ + "log", + "symphonia-core", + "symphonia-metadata", + "symphonia-utils-xiph", +] + +[[package]] +name = "symphonia-metadata" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc622b9841a10089c5b18e99eb904f4341615d5aa55bbf4eedde1be721a4023c" +dependencies = [ + "encoding_rs", + "lazy_static", + "log", + "symphonia-core", +] + +[[package]] +name = "symphonia-utils-xiph" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "484472580fa49991afda5f6550ece662237b00c6f562c7d9638d1b086ed010fe" +dependencies = [ + "symphonia-core", + "symphonia-metadata", +] + [[package]] name = "syn" version = "1.0.109" @@ -3751,9 +3853,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.53" +version = "2.0.55" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7383cd0e49fff4b6b90ca5670bfd3e9d6a733b3f90c686605aa7eec8c4996032" +checksum = "002a1b3dbf967edfafc32655d0f377ab0bb7b994aa1d32c8cc7e9b8bf3ebb8f0" dependencies = [ "proc-macro2", "quote", @@ -3812,7 +3914,7 @@ checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.55", ] [[package]] @@ -3836,31 +3938,6 @@ dependencies = [ "weezl", ] -[[package]] -name = "tiny-skia" -version = "0.11.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83d13394d44dae3207b52a326c0c85a8bf87f1541f23b0d143811088497b09ab" -dependencies = [ - "arrayref", - "arrayvec", - "bytemuck", - "cfg-if", - "log", - "tiny-skia-path", -] - -[[package]] -name = "tiny-skia-path" -version = "0.11.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c9e7fc0c2e86a30b117d0462aa261b72b7a99b7ebd7deb3a14ceda95c5bdc93" -dependencies = [ - "arrayref", - "bytemuck", - "strict-num", -] - [[package]] name = "tinyvec" version = "1.6.0" @@ -3876,6 +3953,15 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" +[[package]] +name = "toml" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" +dependencies = [ + "serde", +] + [[package]] name = "toml_datetime" version = "0.6.5" @@ -3912,7 +3998,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.55", ] [[package]] @@ -3987,9 +4073,15 @@ name = "ttt-ce" version = "0.1.0" dependencies = [ "bevy", - "bevy_dylib", + "bevy_asset_loader", "bevy_editor_pls", + "bevy_kira_audio", "bevy_xpbd_3d", + "embed-resource", + "image", + "rand", + "webbrowser", + "winit", ] [[package]] @@ -4065,6 +4157,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a183cf7feeba97b4dd1c0d46788634f6221d87fa961b305bed08c851829efcc0" dependencies = [ "getrandom", + "rand", "serde", ] @@ -4086,6 +4179,26 @@ version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" +[[package]] +name = "vswhom" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be979b7f07507105799e854203b470ff7c78a1639e330a58f183b5fea574608b" +dependencies = [ + "libc", + "vswhom-sys", +] + +[[package]] +name = "vswhom-sys" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3b17ae1f6c8a2b28506cd96d412eebf83b4a0ff2cbefeeb952f2f9dfa44ba18" +dependencies = [ + "cc", + "libc", +] + [[package]] name = "walkdir" version = "2.5.0" @@ -4123,7 +4236,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.55", "wasm-bindgen-shared", ] @@ -4157,7 +4270,7 @@ checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.55", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -4168,114 +4281,6 @@ version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" -[[package]] -name = "wayland-backend" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d50fa61ce90d76474c87f5fc002828d81b32677340112b4ef08079a9d459a40" -dependencies = [ - "cc", - "downcast-rs", - "rustix", - "scoped-tls", - "smallvec", - "wayland-sys", -] - -[[package]] -name = "wayland-client" -version = "0.31.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82fb96ee935c2cea6668ccb470fb7771f6215d1691746c2d896b447a00ad3f1f" -dependencies = [ - "bitflags 2.5.0", - "rustix", - "wayland-backend", - "wayland-scanner", -] - -[[package]] -name = "wayland-csd-frame" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "625c5029dbd43d25e6aa9615e88b829a5cad13b2819c4ae129fdbb7c31ab4c7e" -dependencies = [ - "bitflags 2.5.0", - "cursor-icon", - "wayland-backend", -] - -[[package]] -name = "wayland-cursor" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71ce5fa868dd13d11a0d04c5e2e65726d0897be8de247c0c5a65886e283231ba" -dependencies = [ - "rustix", - "wayland-client", - "xcursor", -] - -[[package]] -name = "wayland-protocols" -version = "0.31.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f81f365b8b4a97f422ac0e8737c438024b5951734506b0e1d775c73030561f4" -dependencies = [ - "bitflags 2.5.0", - "wayland-backend", - "wayland-client", - "wayland-scanner", -] - -[[package]] -name = "wayland-protocols-plasma" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23803551115ff9ea9bce586860c5c5a971e360825a0309264102a9495a5ff479" -dependencies = [ - "bitflags 2.5.0", - "wayland-backend", - "wayland-client", - "wayland-protocols", - "wayland-scanner", -] - -[[package]] -name = "wayland-protocols-wlr" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad1f61b76b6c2d8742e10f9ba5c3737f6530b4c243132c2a2ccc8aa96fe25cd6" -dependencies = [ - "bitflags 2.5.0", - "wayland-backend", - "wayland-client", - "wayland-protocols", - "wayland-scanner", -] - -[[package]] -name = "wayland-scanner" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63b3a62929287001986fb58c789dce9b67604a397c15c611ad9f747300b6c283" -dependencies = [ - "proc-macro2", - "quick-xml", - "quote", -] - -[[package]] -name = "wayland-sys" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15a0c8eaff5216d07f226cb7a549159267f3467b289d9a2e52fd3ef5aae2b7af" -dependencies = [ - "dlib", - "log", - "pkg-config", -] - [[package]] name = "web-sys" version = "0.3.69" @@ -4758,7 +4763,6 @@ version = "0.29.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0d59ad965a635657faf09c8f062badd885748428933dad8e8bdd64064d92e5ca" dependencies = [ - "ahash", "android-activity", "atomic-waker", "bitflags 2.5.0", @@ -4772,7 +4776,6 @@ dependencies = [ "js-sys", "libc", "log", - "memmap2", "ndk", "ndk-sys", "objc2 0.4.1", @@ -4782,16 +4785,10 @@ dependencies = [ "raw-window-handle 0.6.0", "redox_syscall 0.3.5", "rustix", - "sctk-adwaita", - "smithay-client-toolkit", "smol_str", "unicode-segmentation", "wasm-bindgen", "wasm-bindgen-futures", - "wayland-backend", - "wayland-client", - "wayland-protocols", - "wayland-protocols-plasma", "web-sys", "web-time", "windows-sys 0.48.0", @@ -4809,6 +4806,15 @@ dependencies = [ "memchr", ] +[[package]] +name = "winreg" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d" +dependencies = [ + "winapi", +] + [[package]] name = "x11-dl" version = "2.21.0" @@ -4841,12 +4847,6 @@ version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e63e71c4b8bd9ffec2c963173a4dc4cbde9ee96961d4fcb4429db9929b606c34" -[[package]] -name = "xcursor" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a0ccd7b4a5345edfcd0c3535718a4e9ff7798ffc536bb5b5a0e26ff84732911" - [[package]] name = "xi-unicode" version = "0.3.0" @@ -4895,5 +4895,5 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.53", + "syn 2.0.55", ] diff --git a/Cargo.toml b/Cargo.toml index e9b448c..d5926f6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,22 +1,77 @@ [package] -name = "ttt-ce" +name = "ttt-ce" # ToDo version = "0.1.0" +publish = false +authors = ["Mikolaj Wojciech 'Nimfer' Gorski"] # ToDo: you are the author ;) edition = "2021" +exclude = ["dist", "build", "assets", "credits"] -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html +[workspace] +members = ["mobile"] -# Enable a small amount of optimization in debug mode -[profile.dev] -opt-level = 1 - -# Enable high optimizations for dependencies (incl. Bevy), but not for our code: [profile.dev.package."*"] opt-level = 3 +[profile.dev] +opt-level = 1 +# This is used by trunk as it doesn't support custom profiles: https://github.com/trunk-rs/trunk/issues/605 +# xbuild also uses this profile for building android AABs because I couldn't find a configuration for it +[profile.release] +opt-level = "s" +lto = true +codegen-units = 1 +strip = true + +# Profile for distribution +[profile.dist] +inherits = "release" +opt-level = 3 +lto = true +codegen-units = 1 +strip = true + +[features] +dev = [ + "bevy/dynamic_linking", +] + +# All of Bevy's default features exept for the audio related ones (bevy_audio, vorbis), since they clash with bevy_kira_audio +# and android_shared_stdcxx, since that is covered in `mobile` [dependencies] -bevy = { version = "0.13.1", features = ["wayland"]} -bevy_dylib = "0.13.1" +bevy = { version = "0.13", default-features = false, features = [ + "animation", + "bevy_asset", + "bevy_gilrs", + "bevy_scene", + "bevy_winit", + "bevy_core_pipeline", + "bevy_pbr", + "bevy_gltf", + "bevy_render", + "bevy_sprite", + "bevy_text", + "bevy_ui", + "multi-threaded", + "png", + "hdr", + "x11", + "bevy_gizmos", + "tonemapping_luts", + "default_font", + "webgl2", + "bevy_debug_stepping", +] } +bevy_kira_audio = { version = "0.19" } +bevy_asset_loader = { version = "0.20" } +rand = { version = "0.8.3" } +webbrowser = { version = "0.8", features = ["hardened"] } + +# keep the following in sync with Bevy's dependencies +winit = { version = "0.29", default-features = false } +image = { version = "0.24", default-features = false } bevy_editor_pls = "0.8.1" bevy_xpbd_3d = {git = "https://git.opencodebox.com/MikolajG/bevy_xpbd", branch = "reflect-serialize"} +[build-dependencies] +embed-resource = "1" diff --git a/LICENSE b/LICENSE index f288702..0e259d4 100644 --- a/LICENSE +++ b/LICENSE @@ -1,674 +1,121 @@ - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - Copyright (C) - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. +Creative Commons Legal Code + +CC0 1.0 Universal + + CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE + LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN + ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS + INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES + REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS + PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM + THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED + HEREUNDER. + +Statement of Purpose + +The laws of most jurisdictions throughout the world automatically confer +exclusive Copyright and Related Rights (defined below) upon the creator +and subsequent owner(s) (each and all, an "owner") of an original work of +authorship and/or a database (each, a "Work"). + +Certain owners wish to permanently relinquish those rights to a Work for +the purpose of contributing to a commons of creative, cultural and +scientific works ("Commons") that the public can reliably and without fear +of later claims of infringement build upon, modify, incorporate in other +works, reuse and redistribute as freely as possible in any form whatsoever +and for any purposes, including without limitation commercial purposes. +These owners may contribute to the Commons to promote the ideal of a free +culture and the further production of creative, cultural and scientific +works, or to gain reputation or greater distribution for their Work in +part through the use and efforts of others. + +For these and/or other purposes and motivations, and without any +expectation of additional consideration or compensation, the person +associating CC0 with a Work (the "Affirmer"), to the extent that he or she +is an owner of Copyright and Related Rights in the Work, voluntarily +elects to apply CC0 to the Work and publicly distribute the Work under its +terms, with knowledge of his or her Copyright and Related Rights in the +Work and the meaning and intended legal effect of CC0 on those rights. + +1. Copyright and Related Rights. A Work made available under CC0 may be +protected by copyright and related or neighboring rights ("Copyright and +Related Rights"). Copyright and Related Rights include, but are not +limited to, the following: + + i. the right to reproduce, adapt, distribute, perform, display, + communicate, and translate a Work; + ii. moral rights retained by the original author(s) and/or performer(s); +iii. publicity and privacy rights pertaining to a person's image or + likeness depicted in a Work; + iv. rights protecting against unfair competition in regards to a Work, + subject to the limitations in paragraph 4(a), below; + v. rights protecting the extraction, dissemination, use and reuse of data + in a Work; + vi. database rights (such as those arising under Directive 96/9/EC of the + European Parliament and of the Council of 11 March 1996 on the legal + protection of databases, and under any national implementation + thereof, including any amended or successor version of such + directive); and +vii. other similar, equivalent or corresponding rights throughout the + world based on applicable law or treaty, and any national + implementations thereof. + +2. Waiver. To the greatest extent permitted by, but not in contravention +of, applicable law, Affirmer hereby overtly, fully, permanently, +irrevocably and unconditionally waives, abandons, and surrenders all of +Affirmer's Copyright and Related Rights and associated claims and causes +of action, whether now known or unknown (including existing as well as +future claims and causes of action), in the Work (i) in all territories +worldwide, (ii) for the maximum duration provided by applicable law or +treaty (including future time extensions), (iii) in any current or future +medium and for any number of copies, and (iv) for any purpose whatsoever, +including without limitation commercial, advertising or promotional +purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each +member of the public at large and to the detriment of Affirmer's heirs and +successors, fully intending that such Waiver shall not be subject to +revocation, rescission, cancellation, termination, or any other legal or +equitable action to disrupt the quiet enjoyment of the Work by the public +as contemplated by Affirmer's express Statement of Purpose. + +3. Public License Fallback. Should any part of the Waiver for any reason +be judged legally invalid or ineffective under applicable law, then the +Waiver shall be preserved to the maximum extent permitted taking into +account Affirmer's express Statement of Purpose. In addition, to the +extent the Waiver is so judged Affirmer hereby grants to each affected +person a royalty-free, non transferable, non sublicensable, non exclusive, +irrevocable and unconditional license to exercise Affirmer's Copyright and +Related Rights in the Work (i) in all territories worldwide, (ii) for the +maximum duration provided by applicable law or treaty (including future +time extensions), (iii) in any current or future medium and for any number +of copies, and (iv) for any purpose whatsoever, including without +limitation commercial, advertising or promotional purposes (the +"License"). The License shall be deemed effective as of the date CC0 was +applied by Affirmer to the Work. Should any part of the License for any +reason be judged legally invalid or ineffective under applicable law, such +partial invalidity or ineffectiveness shall not invalidate the remainder +of the License, and in such case Affirmer hereby affirms that he or she +will not (i) exercise any of his or her remaining Copyright and Related +Rights in the Work or (ii) assert any associated claims and causes of +action with respect to the Work, in either case contrary to Affirmer's +express Statement of Purpose. + +4. Limitations and Disclaimers. + + a. No trademark or patent rights held by Affirmer are waived, abandoned, + surrendered, licensed or otherwise affected by this document. + b. Affirmer offers the Work as-is and makes no representations or + warranties of any kind concerning the Work, express, implied, + statutory or otherwise, including without limitation warranties of + title, merchantability, fitness for a particular purpose, non + infringement, or the absence of latent or other defects, accuracy, or + the present or absence of errors, whether or not discoverable, all to + the greatest extent permissible under applicable law. + c. Affirmer disclaims responsibility for clearing rights of other persons + that may apply to the Work or any use thereof, including without + limitation any person's Copyright and Related Rights in the Work. + Further, Affirmer disclaims responsibility for obtaining any necessary + consents, permissions or other rights required for any use of the + Work. + d. Affirmer understands and acknowledges that Creative Commons is not a + party to this document and has no duty or obligation with respect to + this CC0 or use of the Work. diff --git a/Trunk.toml b/Trunk.toml new file mode 100644 index 0000000..36598c5 --- /dev/null +++ b/Trunk.toml @@ -0,0 +1,5 @@ +[build] +public_url = "./" + +[serve] +port = 8080 diff --git a/assets/icon.png b/assets/icon.png new file mode 100644 index 0000000..ba787d7 Binary files /dev/null and b/assets/icon.png differ diff --git a/assets/test_map.bin b/assets/test_map.bin index 22177ca..60b861e 100644 Binary files a/assets/test_map.bin and b/assets/test_map.bin differ diff --git a/assets/test_map.gltf b/assets/test_map.gltf index 944a04c..0b98215 100644 --- a/assets/test_map.gltf +++ b/assets/test_map.gltf @@ -3,6 +3,12 @@ "generator":"Khronos glTF Blender I/O v4.0.44", "version":"2.0" }, + "extensionsUsed":[ + "KHR_texture_transform" + ], + "extensionsRequired":[ + "KHR_texture_transform" + ], "scene":0, "scenes":[ { @@ -14,7 +20,68 @@ 3, 4, 5, - 6 + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 44, + 46, + 48, + 49, + 50, + 51, + 52, + 53, + 55, + 58, + 60, + 64, + 68, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81 ] } ], @@ -23,63 +90,1508 @@ "mesh":0, "name":"Cube", "scale":[ - 10, + 40, 0.06824988126754761, - 10 + 40 ] }, { "mesh":1, - "name":"Cube.001", + "name":"PTK_ActionField_2", + "rotation":[ + 0, + 1, + 0, + 7.549790126404332e-08 + ], + "scale":[ + 2.01033091545105, + 2.01033091545105, + 2.01033091545105 + ], "translation":[ - -6, - 1.0622395277023315, - -7.001382350921631 + -6.549624443054199, + 0.47036612033843994, + 18.30571174621582 ] }, { "mesh":2, - "name":"Cube.003", + "name":"PTK_Bridge_Large", + "rotation":[ + 0, + 1, + 0, + 7.549790126404332e-08 + ], + "scale":[ + 2.01033091545105, + 2.01033091545105, + 2.01033091545105 + ], "translation":[ - -4, - 1.0622395277023315, - -7.001382350921631 + -20.36058807373047, + 0.2612914741039276, + -7.969305992126465 ] }, { "mesh":3, - "name":"Cube.004", + "name":"PTK_Bridge_Medium", + "rotation":[ + 0, + 1, + 0, + 7.549790126404332e-08 + ], + "scale":[ + 2.01033091545105, + 2.01033091545105, + 2.01033091545105 + ], "translation":[ - -2, - 1.0622395277023315, - -7.001382350921631 + -17.96828842163086, + 0.2612914741039276, + -7.466719627380371 ] }, { "mesh":4, - "name":"Cube.005", - "translation":[ + "name":"PTK_Bridge_Small", + "rotation":[ 0, - 1.0622395277023315, - -7.001382350921631 + 1, + 0, + 7.549790126404332e-08 + ], + "scale":[ + 2.01033091545105, + 2.01033091545105, + 2.01033091545105 + ], + "translation":[ + -16.299741744995117, + 0.2612914741039276, + -6.964138984680176 ] }, { "mesh":5, - "name":"Cube.006", + "name":"PTK_Column_Edge_Large", + "rotation":[ + 0, + 1, + 0, + 7.549790126404332e-08 + ], + "scale":[ + 2.01033091545105, + 2.01033091545105, + 2.01033091545105 + ], "translation":[ - 2, - 1.0622395277023315, - -7.001382350921631 + -14.611069679260254, + 0.04618556424975395, + -6.401248931884766 ] }, { "mesh":6, - "name":"Cube.007", + "name":"PTK_Column_Edge_Medium", + "rotation":[ + 0, + 1, + 0, + 7.549790126404332e-08 + ], + "scale":[ + 2.01033091545105, + 2.01033091545105, + 2.01033091545105 + ], "translation":[ - -8, - 1.0622395277023315, - -7.001382350921631 + -12.721352577209473, + 0.04618556424975395, + -6.421339988708496 + ] + }, + { + "mesh":7, + "name":"PTK_Column_Edge_Small", + "rotation":[ + 0, + 1, + 0, + 7.549790126404332e-08 + ], + "scale":[ + 2.01033091545105, + 2.01033091545105, + 2.01033091545105 + ], + "translation":[ + -10.871820449829102, + 0.04618556424975395, + -6.421339988708496 + ] + }, + { + "mesh":8, + "name":"PTK_Column_Large", + "rotation":[ + 0, + 1, + 0, + 7.549790126404332e-08 + ], + "scale":[ + 2.01033091545105, + 2.01033091545105, + 2.01033091545105 + ], + "translation":[ + -7.976941108703613, + 0.04618556424975395, + -7.446629524230957 + ] + }, + { + "mesh":9, + "name":"PTK_Column_Medium", + "rotation":[ + 0, + 1, + 0, + 7.549790126404332e-08 + ], + "scale":[ + 2.01033091545105, + 2.01033091545105, + 2.01033091545105 + ], + "translation":[ + -5.122304439544678, + 0.04618556424975395, + -7.406414031982422 + ] + }, + { + "mesh":10, + "name":"PTK_Column_Small", + "rotation":[ + 0, + 1, + 0, + 7.549790126404332e-08 + ], + "scale":[ + 2.01033091545105, + 2.01033091545105, + 2.01033091545105 + ], + "translation":[ + -2.287727117538452, + 0.04618556424975395, + -7.386321067810059 + ] + }, + { + "mesh":11, + "name":"PTK_Cube_1", + "rotation":[ + 0, + 1, + 0, + 7.549790126404332e-08 + ], + "scale":[ + 2.01033091545105, + 2.01033091545105, + 2.01033091545105 + ], + "translation":[ + 0.5468485951423645, + 0.04618556424975395, + -7.446627616882324 + ] + }, + { + "mesh":12, + "name":"PTK_Cube_2", + "rotation":[ + 0, + 1, + 0, + 7.549790126404332e-08 + ], + "scale":[ + 2.01033091545105, + 2.01033091545105, + 2.01033091545105 + ], + "translation":[ + 3.4216063022613525, + 0.04618556424975395, + -8.351269721984863 + ] + }, + { + "mesh":13, + "name":"PTK_Cuboid_1", + "rotation":[ + 0, + 1, + 0, + 7.549790126404332e-08 + ], + "scale":[ + 2.01033091545105, + 2.01033091545105, + 2.01033091545105 + ], + "translation":[ + -27.59779167175293, + -0.00980047881603241, + -15.126084327697754 + ] + }, + { + "mesh":14, + "name":"PTK_Cuboid_2", + "rotation":[ + 0, + 1, + 0, + 7.549790126404332e-08 + ], + "scale":[ + 2.01033091545105, + 2.01033091545105, + 2.01033091545105 + ], + "translation":[ + -27.59779167175293, + -0.00980047881603241, + -11.82913589477539 + ] + }, + { + "mesh":15, + "name":"PTK_Cuboid_3", + "rotation":[ + 0, + 1, + 0, + 7.549790126404332e-08 + ], + "scale":[ + 2.01033091545105, + 2.01033091545105, + 2.01033091545105 + ], + "translation":[ + -27.59779167175293, + -0.00980047881603241, + -6.562076568603516 + ] + }, + { + "mesh":16, + "name":"PTK_Cuboid_4", + "rotation":[ + 0, + 1, + 0, + 7.549790126404332e-08 + ], + "scale":[ + 2.01033091545105, + 2.01033091545105, + 2.01033091545105 + ], + "translation":[ + -27.59779167175293, + -0.00980047881603241, + 0.8560473918914795 + ] + }, + { + "mesh":17, + "name":"PTK_Cuboid_5", + "rotation":[ + 0, + 1, + 0, + 7.549790126404332e-08 + ], + "scale":[ + 2.01033091545105, + 2.01033091545105, + 2.01033091545105 + ], + "translation":[ + -27.59779167175293, + -0.00980047881603241, + 10.46542739868164 + ] + }, + { + "mesh":18, + "name":"PTK_Ramp_Large", + "rotation":[ + 0, + 1, + 0, + 7.549790126404332e-08 + ], + "scale":[ + 2.01033091545105, + 2.01033091545105, + 2.01033091545105 + ], + "translation":[ + -19.089351654052734, + 0.04618556424975395, + 3.0452158451080322 + ] + }, + { + "mesh":19, + "name":"PTK_Ramp_Medium", + "rotation":[ + 0, + 1, + 0, + 7.549790126404332e-08 + ], + "scale":[ + 2.01033091545105, + 2.01033091545105, + 2.01033091545105 + ], + "translation":[ + -16.154462814331055, + 0.04618556424975395, + 7.074099540710449 + ] + }, + { + "mesh":20, + "name":"PTK_Ramp_Small", + "rotation":[ + 0, + 1, + 0, + 7.549790126404332e-08 + ], + "scale":[ + 2.01033091545105, + 2.01033091545105, + 2.01033091545105 + ], + "translation":[ + -13.384925842285156, + 0.04618556424975395, + 11.094425201416016 + ] + }, + { + "mesh":21, + "name":"PTK_Stairs_Large", + "rotation":[ + 0, + 1, + 0, + 7.549790126404332e-08 + ], + "scale":[ + 2.01033091545105, + 2.01033091545105, + 2.01033091545105 + ], + "translation":[ + -9.488924980163574, + 0.04618556424975395, + 3.057211399078369 + ] + }, + { + "mesh":22, + "name":"PTK_Stairs_Medium", + "rotation":[ + 0, + 1, + 0, + 7.549790126404332e-08 + ], + "scale":[ + 2.01033091545105, + 2.01033091545105, + 2.01033091545105 + ], + "translation":[ + -6.705515384674072, + 0.04618556424975395, + 7.062811851501465 + ] + }, + { + "mesh":23, + "name":"PTK_Stairs_Small", + "rotation":[ + 0, + 1, + 0, + 7.549790126404332e-08 + ], + "scale":[ + 2.01033091545105, + 2.01033091545105, + 2.01033091545105 + ], + "translation":[ + -3.8992855548858643, + 0.04618556424975395, + 11.131573677062988 + ] + }, + { + "mesh":24, + "name":"PTK_Wall_Large_1", + "rotation":[ + 0, + 1, + 0, + 7.549790126404332e-08 + ], + "scale":[ + 2.01033091545105, + 2.01033091545105, + 2.01033091545105 + ], + "translation":[ + -0.05058640241622925, + 0.04618556424975395, + 14.116981506347656 + ] + }, + { + "mesh":25, + "name":"PTK_Wall_Large_2", + "rotation":[ + 0, + 1, + 0, + 7.549790126404332e-08 + ], + "scale":[ + 2.01033091545105, + 2.01033091545105, + 2.01033091545105 + ], + "translation":[ + 0.9509013295173645, + 0.04618556424975395, + 13.151416778564453 + ] + }, + { + "mesh":26, + "name":"PTK_Wall_Large_3", + "rotation":[ + 0, + 1, + 0, + 7.549790126404332e-08 + ], + "scale":[ + 2.01033091545105, + 2.01033091545105, + 2.01033091545105 + ], + "translation":[ + 1.9437334537506104, + 0.04618556424975395, + 12.125788688659668 + ] + }, + { + "mesh":27, + "name":"PTK_Wall_Large_4", + "rotation":[ + 0, + 1, + 0, + 7.549790126404332e-08 + ], + "scale":[ + 2.01033091545105, + 2.01033091545105, + 2.01033091545105 + ], + "translation":[ + 2.851106882095337, + 0.04618556424975395, + 11.184982299804688 + ] + }, + { + "mesh":28, + "name":"PTK_Wall_Large_5", + "rotation":[ + 0, + 1, + 0, + 7.549790126404332e-08 + ], + "scale":[ + 2.01033091545105, + 2.01033091545105, + 2.01033091545105 + ], + "translation":[ + 3.8004438877105713, + 0.04618556424975395, + 10.13637638092041 + ] + }, + { + "mesh":29, + "name":"PTK_Wall_Medium_1", + "rotation":[ + 0, + 1, + 0, + 7.549790126404332e-08 + ], + "scale":[ + 2.01033091545105, + 2.01033091545105, + 2.01033091545105 + ], + "translation":[ + 6.575769901275635, + 0.04618556424975395, + 14.125752449035645 + ] + }, + { + "mesh":30, + "name":"PTK_Wall_Medium_2", + "rotation":[ + 0, + 1, + 0, + 7.549790126404332e-08 + ], + "scale":[ + 2.01033091545105, + 2.01033091545105, + 2.01033091545105 + ], + "translation":[ + 7.5098557472229, + 0.04618556424975395, + 13.100341796875 + ] + }, + { + "mesh":31, + "name":"PTK_Wall_Medium_3", + "rotation":[ + 0, + 1, + 0, + 7.549790126404332e-08 + ], + "scale":[ + 2.01033091545105, + 2.01033091545105, + 2.01033091545105 + ], + "translation":[ + 8.476037979125977, + 0.04618556424975395, + 12.152875900268555 + ] + }, + { + "mesh":32, + "name":"PTK_Wall_Medium_4", + "rotation":[ + 0, + 1, + 0, + 7.549790126404332e-08 + ], + "scale":[ + 2.01033091545105, + 2.01033091545105, + 2.01033091545105 + ], + "translation":[ + 9.414545059204102, + 0.04618556424975395, + 11.097189903259277 + ] + }, + { + "mesh":33, + "name":"PTK_Wall_Medium_5", + "rotation":[ + 0, + 1, + 0, + 7.549790126404332e-08 + ], + "scale":[ + 2.01033091545105, + 2.01033091545105, + 2.01033091545105 + ], + "translation":[ + 10.371454238891602, + 0.04618556424975395, + 10.139568328857422 + ] + }, + { + "mesh":34, + "name":"PTK_Wall_Small_1", + "rotation":[ + 0, + 1, + 0, + 7.549790126404332e-08 + ], + "scale":[ + 2.01033091545105, + 2.01033091545105, + 2.01033091545105 + ], + "translation":[ + 12.166696548461914, + 0.04618556424975395, + 14.166089057922363 + ] + }, + { + "mesh":35, + "name":"PTK_Wall_Small_2", + "rotation":[ + 0, + 1, + 0, + 7.549790126404332e-08 + ], + "scale":[ + 2.01033091545105, + 2.01033091545105, + 2.01033091545105 + ], + "translation":[ + 13.133539199829102, + 0.04618556424975395, + 13.11153793334961 + ] + }, + { + "mesh":36, + "name":"PTK_Wall_Small_3", + "rotation":[ + 0, + 1, + 0, + 7.549790126404332e-08 + ], + "scale":[ + 2.01033091545105, + 2.01033091545105, + 2.01033091545105 + ], + "translation":[ + 14.110733032226562, + 0.04618556424975395, + 12.129040718078613 + ] + }, + { + "mesh":37, + "name":"PTK_Wall_Small_4", + "rotation":[ + 0, + 1, + 0, + 7.549790126404332e-08 + ], + "scale":[ + 2.01033091545105, + 2.01033091545105, + 2.01033091545105 + ], + "translation":[ + 15.04161262512207, + 0.04618556424975395, + 11.138568878173828 + ] + }, + { + "mesh":38, + "name":"PTK_Wall_Small_5", + "rotation":[ + 0, + 1, + 0, + 7.549790126404332e-08 + ], + "scale":[ + 2.01033091545105, + 2.01033091545105, + 2.01033091545105 + ], + "translation":[ + 15.994539260864258, + 0.04618556424975395, + 10.141380310058594 + ] + }, + { + "mesh":39, + "name":"PTK_ActionField", + "rotation":[ + 0, + 1, + 0, + 7.549790126404332e-08 + ], + "scale":[ + 2.01033091545105, + 2.01033091545105, + 2.01033091545105 + ], + "translation":[ + -7.695528507232666, + 0.47036612033843994, + 18.305707931518555 + ] + }, + { + "mesh":40, + "name":"PTK_Exclamation_red", + "rotation":[ + 0, + 1, + 0, + 7.549790126404332e-08 + ], + "scale":[ + 2.01033091545105, + 2.01033091545105, + 2.01033091545105 + ], + "translation":[ + -3.2526533603668213, + 0.04618556424975395, + 18.267520904541016 + ] + }, + { + "mesh":41, + "name":"PTK_Collectable_1", + "rotation":[ + 0, + 1, + 0, + 7.549790126404332e-08 + ], + "scale":[ + 2.01033091545105, + 2.01033091545105, + 2.01033091545105 + ], + "translation":[ + -1.1217029094696045, + 0.2371673732995987, + 18.343935012817383 + ] + }, + { + "mesh":42, + "name":"PTK_Collectable_2", + "rotation":[ + 0, + 1, + 0, + 7.549790126404332e-08 + ], + "scale":[ + 2.01033091545105, + 2.01033091545105, + 2.01033091545105 + ], + "translation":[ + -0.8000409007072449, + 0.2371673732995987, + 18.353931427001953 + ] + }, + { + "mesh":43, + "name":"Sliding_Door", + "translation":[ + 0, + 1.7199997901916504, + 0 + ] + }, + { + "children":[ + 43 + ], + "mesh":44, + "name":"PTK_SlidingDoor_Large", + "rotation":[ + 0, + 0.7071068286895752, + 0, + 0.7071068286895752 + ], + "scale":[ + 2.01033091545105, + 2.01033091545105, + 2.01033091545105 + ], + "translation":[ + 9.693876266479492, + 0.04618556424975395, + -6.702690124511719 + ] + }, + { + "mesh":45, + "name":"Sliding_Door_001", + "translation":[ + 0, + 0.9214999079704285, + -0.18999943137168884 + ] + }, + { + "children":[ + 45 + ], + "mesh":46, + "name":"PTK_SlidingDoor_Medium", + "rotation":[ + 0, + 0.7071068286895752, + 0, + 0.7071068286895752 + ], + "scale":[ + 2.01033091545105, + 2.01033091545105, + 2.01033091545105 + ], + "translation":[ + 15.403181076049805, + 0.04618556424975395, + -6.702688217163086 + ] + }, + { + "mesh":47, + "name":"Door", + "rotation":[ + 0, + 0.34795981645584106, + 0, + 0.9375094771385193 + ], + "translation":[ + 0, + 0, + 0.3874427378177643 + ] + }, + { + "children":[ + 47 + ], + "mesh":48, + "name":"PTK_Door_Medium__1_", + "rotation":[ + 0, + 0.7071068286895752, + 0, + 0.7071068286895752 + ], + "scale":[ + 2.01033091545105, + 2.01033091545105, + 2.01033091545105 + ], + "translation":[ + 18.030118942260742, + 0.04618556424975395, + -6.702688217163086 + ] + }, + { + "mesh":49, + "name":"PTK_Ladder_Large", + "rotation":[ + 0, + 0.7071068286895752, + 0, + 0.7071068286895752 + ], + "scale":[ + 2.01033091545105, + 2.01033091545105, + 2.01033091545105 + ], + "translation":[ + -0.8000370860099792, + 0.04618556424975395, + -18.764806747436523 + ] + }, + { + "mesh":50, + "name":"PTK_Ladder_Medium", + "rotation":[ + 0, + 0.7071068286895752, + 0, + 0.7071068286895752 + ], + "scale":[ + 2.01033091545105, + 2.01033091545105, + 2.01033091545105 + ], + "translation":[ + 0.888630211353302, + 0.04618556424975395, + -18.764806747436523 + ] + }, + { + "mesh":51, + "name":"PTK_Ladder_Small", + "rotation":[ + 0, + 0.7071068286895752, + 0, + 0.7071068286895752 + ], + "scale":[ + 2.01033091545105, + 2.01033091545105, + 2.01033091545105 + ], + "translation":[ + 2.476747751235962, + 0.04618556424975395, + -18.845203399658203 + ] + }, + { + "mesh":52, + "name":"PTK_Lamp", + "rotation":[ + 0, + 1, + 0, + 7.549790126404332e-08 + ], + "scale":[ + 2.01033091545105, + 2.01033091545105, + 2.01033091545105 + ], + "translation":[ + 0.9489367604255676, + 5.353462219238281, + 17.83978271484375 + ] + }, + { + "mesh":53, + "name":"PTK_Tunnel_Small", + "rotation":[ + 0, + 1, + 0, + 7.549790126404332e-08 + ], + "scale":[ + 2.01033091545105, + 2.01033091545105, + 2.01033091545105 + ], + "translation":[ + -4.398552417755127, + 0.04618556424975395, + -19.749847412109375 + ] + }, + { + "mesh":54, + "name":"Door_5_001", + "translation":[ + 0, + 0, + 0.3874417841434479 + ] + }, + { + "children":[ + 54 + ], + "mesh":55, + "name":"PTK_Door_Medium_2", + "rotation":[ + 0, + 0.7071068286895752, + 0, + 0.7071068286895752 + ], + "scale":[ + 2.01033091545105, + 2.01033091545105, + 2.01033091545105 + ], + "translation":[ + 21.715652465820312, + 0.06628911197185516, + -6.702688217163086 + ] + }, + { + "mesh":56, + "name":"Door_5", + "rotation":[ + 0, + 0.21325471997261047, + 0, + 0.976996660232544 + ], + "translation":[ + 0, + 0, + 0.774999737739563 + ] + }, + { + "mesh":57, + "name":"Door_6", + "rotation":[ + 0, + -0.12296297401189804, + 0, + 0.9924112558364868 + ], + "translation":[ + 0, + 0, + -0.7750004529953003 + ] + }, + { + "children":[ + 56, + 57 + ], + "mesh":58, + "name":"PTK_DoubleDoor_Medium", + "rotation":[ + 0, + 0.7071068286895752, + 0, + 0.7071068286895752 + ], + "scale":[ + 2.01033091545105, + 2.01033091545105, + 2.01033091545105 + ], + "translation":[ + 26.560565948486328, + 0.06628911197185516, + -6.702688217163086 + ] + }, + { + "mesh":59, + "name":"Door_7" + }, + { + "children":[ + 59 + ], + "mesh":60, + "name":"PTK_RevolvingDoor_Medium", + "rotation":[ + 0, + 0.7071068286895752, + 0, + 0.7071068286895752 + ], + "scale":[ + 2.01033091545105, + 2.01033091545105, + 2.01033091545105 + ], + "translation":[ + 31.425548553466797, + 0.06628911197185516, + -6.702688217163086 + ] + }, + { + "mesh":61, + "name":"Door_3", + "translation":[ + 0.9449977874755859, + 0.054749321192502975, + 0.944075882434845 + ] + }, + { + "mesh":62, + "name":"Door_4", + "translation":[ + -0.9449973106384277, + 0.054749321192502975, + 0.9440764784812927 + ] + }, + { + "children":[ + 61, + 62 + ], + "mesh":63, + "name":"PTK_Elevator" + }, + { + "children":[ + 63 + ], + "mesh":64, + "name":"PTK_Elevator_2Floors", + "scale":[ + 2.01033091545105, + 2.01033091545105, + 2.01033091545105 + ], + "translation":[ + 8.708806991577148, + 0.06628911197185516, + -20.795230865478516 + ] + }, + { + "mesh":61, + "name":"Door_3_1", + "translation":[ + 1.3499994277954102, + 0.054749324917793274, + 0.9440774321556091 + ] + }, + { + "mesh":62, + "name":"Door_4_1", + "translation":[ + -1.4200005531311035, + 0.054749324917793274, + 0.9440773129463196 + ] + }, + { + "children":[ + 65, + 66 + ], + "mesh":63, + "name":"PTK_Elevator__1_" + }, + { + "children":[ + 67 + ], + "mesh":65, + "name":"PTK_Elevator_3Floors", + "scale":[ + 2.01033091545105, + 2.01033091545105, + 2.01033091545105 + ], + "translation":[ + 16.5692081451416, + 0.06628839671611786, + -20.79522705078125 + ] + }, + { + "mesh":66, + "name":"Lid", + "rotation":[ + 0, + 0, + -0.3780010938644409, + 0.9258051514625549 + ], + "translation":[ + 0.2499992698431015, + 0.49999988079071045, + 0 + ] + }, + { + "children":[ + 69 + ], + "mesh":67, + "name":"PTK_Chest", + "rotation":[ + 0, + 0.7071068286895752, + 0, + 0.7071068286895752 + ], + "scale":[ + 2.01033091545105, + 2.01033091545105, + 2.01033091545105 + ], + "translation":[ + -10.18832015991211, + 0.11964905261993408, + 18.524946212768555 + ] + }, + { + "mesh":68, + "name":"PTK_Pool", + "rotation":[ + -0.003346191020682454, + 0.7071229815483093, + 0.0035125536378473043, + 0.7070739269256592 + ], + "scale":[ + 2.0103304386138916, + 2.0103304386138916, + 2.010331392288208 + ], + "translation":[ + -15.252582550048828, + 0.03995344787836075, + -20.615934371948242 + ] + }, + { + "mesh":69, + "name":"PTK_Tunnel_Medium", + "rotation":[ + 0, + 1, + 0, + 7.549790126404332e-08 + ], + "scale":[ + 2.01033091545105, + 2.01033091545105, + 2.01033091545105 + ], + "translation":[ + -7.357728004455566, + 0.04618556424975395, + -19.749847412109375 + ] + }, + { + "mesh":70, + "name":"PTK_Tunnel_Large", + "rotation":[ + 0, + 1, + 0, + 7.549790126404332e-08 + ], + "scale":[ + 2.01033091545105, + 2.01033091545105, + 2.01033091545105 + ], + "translation":[ + -9.967148780822754, + 0.04618556424975395, + -19.749847412109375 + ] + }, + { + "mesh":71, + "name":"PTK_ActionField_3", + "rotation":[ + 0, + 1, + 0, + 7.549790126404332e-08 + ], + "scale":[ + 2.01033091545105, + 2.01033091545105, + 2.01033091545105 + ], + "translation":[ + -5.443906307220459, + 0.47036612033843994, + 18.30571174621582 + ] + }, + { + "mesh":72, + "name":"PTK_ActionField_4", + "rotation":[ + 0, + 1, + 0, + 7.549790126404332e-08 + ], + "scale":[ + 2.01033091545105, + 2.01033091545105, + 2.01033091545105 + ], + "translation":[ + -4.4186787605285645, + 0.47036612033843994, + 18.30571174621582 + ] + }, + { + "mesh":73, + "name":"PTK_Exclamation_blue", + "rotation":[ + 0, + 1, + 0, + 7.549790126404332e-08 + ], + "scale":[ + 2.01033091545105, + 2.01033091545105, + 2.01033091545105 + ], + "translation":[ + -2.549084424972534, + 0.04618556424975395, + 18.267520904541016 + ] + }, + { + "mesh":74, + "name":"PTK_Exclamation_green", + "rotation":[ + 0, + 1, + 0, + 7.549790126404332e-08 + ], + "scale":[ + 2.01033091545105, + 2.01033091545105, + 2.01033091545105 + ], + "translation":[ + -1.8052079677581787, + 0.04618556424975395, + 18.267520904541016 + ] + }, + { + "mesh":75, + "name":"PTK_Collectable_1_blue", + "rotation":[ + 0, + 1, + 0, + 7.549790126404332e-08 + ], + "scale":[ + 2.01033091545105, + 2.01033091545105, + 2.01033091545105 + ], + "translation":[ + -1.1217029094696045, + 0.2371673732995987, + 17.748830795288086 + ] + }, + { + "mesh":76, + "name":"PTK_Collectable_1_green", + "rotation":[ + 0, + 1, + 0, + 7.549790126404332e-08 + ], + "scale":[ + 2.01033091545105, + 2.01033091545105, + 2.01033091545105 + ], + "translation":[ + -1.1217029094696045, + 0.2371673732995987, + 17.153825759887695 + ] + }, + { + "mesh":77, + "name":"PTK_Collectable_2_blue", + "rotation":[ + 0, + 1, + 0, + 7.549790126404332e-08 + ], + "scale":[ + 2.01033091545105, + 2.01033091545105, + 2.01033091545105 + ], + "translation":[ + -0.8000409007072449, + 0.2371673732995987, + 17.730764389038086 + ] + }, + { + "mesh":78, + "name":"PTK_Collectable_2_green", + "rotation":[ + 0, + 1, + 0, + 7.549790126404332e-08 + ], + "scale":[ + 2.01033091545105, + 2.01033091545105, + 2.01033091545105 + ], + "translation":[ + -0.8000409007072449, + 0.2371673732995987, + 17.13971710205078 ] } ], @@ -97,35 +1609,145 @@ }, { "doubleSided":true, - "name":"Material.001", + "name":"Prototyp_Material_10", "pbrMetallicRoughness":{ "baseColorTexture":{ "index":1 }, "metallicFactor":0, - "roughnessFactor":0.5 + "roughnessFactor":0.5527864098548889 } }, { "doubleSided":true, - "name":"Material.002", + "name":"Prototyp_Material_1", "pbrMetallicRoughness":{ "baseColorTexture":{ + "extensions":{ + "KHR_texture_transform":{ + "offset":[ + 0, + -4 + ], + "scale":[ + 5, + 5 + ] + } + }, "index":2 }, "metallicFactor":0, - "roughnessFactor":0.5 + "roughnessFactor":0.5527864098548889 } }, { "doubleSided":true, - "name":"Material.003", + "name":"Prototyp_Material_9", "pbrMetallicRoughness":{ "baseColorTexture":{ "index":3 }, "metallicFactor":0, - "roughnessFactor":0.5 + "roughnessFactor":0.5527864098548889 + } + }, + { + "doubleSided":true, + "name":"Prototyp_Material_13", + "pbrMetallicRoughness":{ + "baseColorFactor":[ + 1, + 0, + 0, + 1 + ], + "metallicFactor":0, + "roughnessFactor":0.5527864098548889 + } + }, + { + "doubleSided":true, + "name":"Prototyp_Material_8", + "pbrMetallicRoughness":{ + "baseColorTexture":{ + "index":4 + }, + "metallicFactor":0, + "roughnessFactor":0.5527864098548889 + } + }, + { + "doubleSided":true, + "name":"Prototyp_Material_2", + "pbrMetallicRoughness":{ + "baseColorTexture":{ + "extensions":{ + "KHR_texture_transform":{ + "offset":[ + 0, + -4 + ], + "scale":[ + 5, + 5 + ] + } + }, + "index":5 + }, + "metallicFactor":0, + "roughnessFactor":0.5527864098548889 + } + }, + { + "doubleSided":true, + "name":"Prototyp_Material_11", + "pbrMetallicRoughness":{ + "baseColorTexture":{ + "index":6 + }, + "metallicFactor":0, + "roughnessFactor":0.5527864098548889 + } + }, + { + "doubleSided":true, + "name":"Prototyp_Material_12", + "pbrMetallicRoughness":{ + "baseColorTexture":{ + "index":7 + }, + "metallicFactor":0, + "roughnessFactor":0.5527864098548889 + } + }, + { + "doubleSided":true, + "name":"Prototyp_Material_14", + "pbrMetallicRoughness":{ + "baseColorFactor":[ + 0, + 0.5448276996612549, + 1, + 1 + ], + "metallicFactor":0, + "roughnessFactor":0.5527864098548889 + } + }, + { + "doubleSided":true, + "name":"Prototyp_Material_15", + "pbrMetallicRoughness":{ + "baseColorFactor":[ + 0.36551713943481445, + 1, + 0, + 1 + ], + "metallicFactor":0, + "roughnessFactor":0.5527864098548889 } } ], @@ -145,7 +1767,7 @@ ] }, { - "name":"Cube.001", + "name":"Scene", "primitives":[ { "attributes":{ @@ -155,7 +1777,12 @@ }, "indices":7, "material":1 - }, + } + ] + }, + { + "name":"Scene.001", + "primitives":[ { "attributes":{ "POSITION":8, @@ -164,52 +1791,67 @@ }, "indices":11, "material":2 - }, + } + ] + }, + { + "name":"Scene.002", + "primitives":[ { "attributes":{ "POSITION":12, "NORMAL":13, "TEXCOORD_0":14 }, - "indices":15, - "material":3 + "indices":11, + "material":2 } ] }, { - "name":"Cube.003", + "name":"Scene.003", "primitives":[ { "attributes":{ - "POSITION":16, - "NORMAL":17, - "TEXCOORD_0":18 - }, - "indices":7, - "material":1 - }, - { - "attributes":{ - "POSITION":19, - "NORMAL":20, - "TEXCOORD_0":21 + "POSITION":15, + "NORMAL":16, + "TEXCOORD_0":17 }, "indices":11, "material":2 - }, + } + ] + }, + { + "name":"Scene.004", + "primitives":[ + { + "attributes":{ + "POSITION":18, + "NORMAL":19, + "TEXCOORD_0":20 + }, + "indices":21, + "material":2 + } + ] + }, + { + "name":"Scene.005", + "primitives":[ { "attributes":{ "POSITION":22, "NORMAL":23, "TEXCOORD_0":24 }, - "indices":15, - "material":3 + "indices":21, + "material":2 } ] }, { - "name":"Cube.004", + "name":"Scene.006", "primitives":[ { "attributes":{ @@ -217,122 +1859,1002 @@ "NORMAL":26, "TEXCOORD_0":27 }, - "indices":7, - "material":1 - }, + "indices":21, + "material":2 + } + ] + }, + { + "name":"Scene.007", + "primitives":[ { "attributes":{ "POSITION":28, "NORMAL":29, "TEXCOORD_0":30 }, - "indices":11, + "indices":31, "material":2 - }, + } + ] + }, + { + "name":"Scene.008", + "primitives":[ { "attributes":{ - "POSITION":31, - "NORMAL":32, - "TEXCOORD_0":33 + "POSITION":32, + "NORMAL":33, + "TEXCOORD_0":34 }, - "indices":15, + "indices":31, + "material":2 + } + ] + }, + { + "name":"Scene.009", + "primitives":[ + { + "attributes":{ + "POSITION":35, + "NORMAL":36, + "TEXCOORD_0":37 + }, + "indices":31, + "material":2 + } + ] + }, + { + "name":"Scene.010", + "primitives":[ + { + "attributes":{ + "POSITION":38, + "NORMAL":39, + "TEXCOORD_0":40 + }, + "indices":41, + "material":2 + } + ] + }, + { + "name":"Scene.011", + "primitives":[ + { + "attributes":{ + "POSITION":42, + "NORMAL":43, + "TEXCOORD_0":44 + }, + "indices":41, + "material":2 + } + ] + }, + { + "name":"Scene.012", + "primitives":[ + { + "attributes":{ + "POSITION":45, + "NORMAL":46, + "TEXCOORD_0":47 + }, + "indices":41, + "material":2 + } + ] + }, + { + "name":"Scene.013", + "primitives":[ + { + "attributes":{ + "POSITION":48, + "NORMAL":49, + "TEXCOORD_0":50 + }, + "indices":41, + "material":2 + } + ] + }, + { + "name":"Scene.014", + "primitives":[ + { + "attributes":{ + "POSITION":51, + "NORMAL":52, + "TEXCOORD_0":53 + }, + "indices":41, + "material":2 + } + ] + }, + { + "name":"Scene.015", + "primitives":[ + { + "attributes":{ + "POSITION":54, + "NORMAL":55, + "TEXCOORD_0":56 + }, + "indices":41, + "material":2 + } + ] + }, + { + "name":"Scene.016", + "primitives":[ + { + "attributes":{ + "POSITION":57, + "NORMAL":58, + "TEXCOORD_0":59 + }, + "indices":41, + "material":2 + } + ] + }, + { + "name":"Scene.017", + "primitives":[ + { + "attributes":{ + "POSITION":60, + "NORMAL":61, + "TEXCOORD_0":62 + }, + "indices":63, + "material":2 + } + ] + }, + { + "name":"Scene.018", + "primitives":[ + { + "attributes":{ + "POSITION":64, + "NORMAL":65, + "TEXCOORD_0":66 + }, + "indices":67, + "material":2 + } + ] + }, + { + "name":"Scene.019", + "primitives":[ + { + "attributes":{ + "POSITION":68, + "NORMAL":69, + "TEXCOORD_0":70 + }, + "indices":71, + "material":2 + } + ] + }, + { + "name":"Scene.020", + "primitives":[ + { + "attributes":{ + "POSITION":72, + "NORMAL":73, + "TEXCOORD_0":74 + }, + "indices":75, + "material":2 + } + ] + }, + { + "name":"Scene.021", + "primitives":[ + { + "attributes":{ + "POSITION":76, + "NORMAL":77, + "TEXCOORD_0":78 + }, + "indices":79, + "material":2 + } + ] + }, + { + "name":"Scene.022", + "primitives":[ + { + "attributes":{ + "POSITION":80, + "NORMAL":81, + "TEXCOORD_0":82 + }, + "indices":83, + "material":2 + } + ] + }, + { + "name":"Scene.023", + "primitives":[ + { + "attributes":{ + "POSITION":84, + "NORMAL":85, + "TEXCOORD_0":86 + }, + "indices":41, + "material":2 + } + ] + }, + { + "name":"Scene.024", + "primitives":[ + { + "attributes":{ + "POSITION":87, + "NORMAL":88, + "TEXCOORD_0":89 + }, + "indices":41, + "material":2 + } + ] + }, + { + "name":"Scene.025", + "primitives":[ + { + "attributes":{ + "POSITION":90, + "NORMAL":91, + "TEXCOORD_0":92 + }, + "indices":41, + "material":2 + } + ] + }, + { + "name":"Scene.026", + "primitives":[ + { + "attributes":{ + "POSITION":93, + "NORMAL":94, + "TEXCOORD_0":95 + }, + "indices":41, + "material":2 + } + ] + }, + { + "name":"Scene.027", + "primitives":[ + { + "attributes":{ + "POSITION":96, + "NORMAL":97, + "TEXCOORD_0":98 + }, + "indices":41, + "material":2 + } + ] + }, + { + "name":"Scene.028", + "primitives":[ + { + "attributes":{ + "POSITION":99, + "NORMAL":100, + "TEXCOORD_0":101 + }, + "indices":41, + "material":2 + } + ] + }, + { + "name":"Scene.029", + "primitives":[ + { + "attributes":{ + "POSITION":102, + "NORMAL":103, + "TEXCOORD_0":104 + }, + "indices":41, + "material":2 + } + ] + }, + { + "name":"Scene.030", + "primitives":[ + { + "attributes":{ + "POSITION":105, + "NORMAL":106, + "TEXCOORD_0":107 + }, + "indices":41, + "material":2 + } + ] + }, + { + "name":"Scene.031", + "primitives":[ + { + "attributes":{ + "POSITION":108, + "NORMAL":109, + "TEXCOORD_0":110 + }, + "indices":41, + "material":2 + } + ] + }, + { + "name":"Scene.032", + "primitives":[ + { + "attributes":{ + "POSITION":111, + "NORMAL":112, + "TEXCOORD_0":113 + }, + "indices":41, + "material":2 + } + ] + }, + { + "name":"Scene.033", + "primitives":[ + { + "attributes":{ + "POSITION":114, + "NORMAL":115, + "TEXCOORD_0":116 + }, + "indices":41, + "material":2 + } + ] + }, + { + "name":"Scene.034", + "primitives":[ + { + "attributes":{ + "POSITION":117, + "NORMAL":118, + "TEXCOORD_0":119 + }, + "indices":41, + "material":2 + } + ] + }, + { + "name":"Scene.035", + "primitives":[ + { + "attributes":{ + "POSITION":120, + "NORMAL":121, + "TEXCOORD_0":122 + }, + "indices":41, + "material":2 + } + ] + }, + { + "name":"Scene.036", + "primitives":[ + { + "attributes":{ + "POSITION":123, + "NORMAL":124, + "TEXCOORD_0":125 + }, + "indices":41, + "material":2 + } + ] + }, + { + "name":"Scene.037", + "primitives":[ + { + "attributes":{ + "POSITION":126, + "NORMAL":127, + "TEXCOORD_0":128 + }, + "indices":41, + "material":2 + } + ] + }, + { + "name":"Scene", + "primitives":[ + { + "attributes":{ + "POSITION":4, + "NORMAL":5, + "TEXCOORD_0":6 + }, + "indices":7, "material":3 } ] }, { - "name":"Cube.005", + "name":"Scene.038", "primitives":[ { "attributes":{ - "POSITION":34, - "NORMAL":35, - "TEXCOORD_0":36 + "POSITION":129, + "NORMAL":130, + "TEXCOORD_0":131 }, - "indices":7, - "material":1 - }, - { - "attributes":{ - "POSITION":37, - "NORMAL":38, - "TEXCOORD_0":39 - }, - "indices":11, - "material":2 - }, - { - "attributes":{ - "POSITION":40, - "NORMAL":41, - "TEXCOORD_0":42 - }, - "indices":15, - "material":3 + "indices":132, + "material":4 } ] }, { - "name":"Cube.006", + "name":"Scene.039", "primitives":[ { "attributes":{ - "POSITION":43, - "NORMAL":44, - "TEXCOORD_0":45 + "POSITION":133, + "NORMAL":134, + "TEXCOORD_0":135 }, - "indices":7, - "material":1 - }, - { - "attributes":{ - "POSITION":46, - "NORMAL":47, - "TEXCOORD_0":48 - }, - "indices":11, - "material":2 - }, - { - "attributes":{ - "POSITION":49, - "NORMAL":50, - "TEXCOORD_0":51 - }, - "indices":15, - "material":3 + "indices":136, + "material":4 } ] }, { - "name":"Cube.007", + "name":"Scene.040", "primitives":[ { "attributes":{ - "POSITION":52, - "NORMAL":53, - "TEXCOORD_0":54 + "POSITION":137, + "NORMAL":138, + "TEXCOORD_0":139 + }, + "indices":140, + "material":4 + } + ] + }, + { + "name":"Scene.042", + "primitives":[ + { + "attributes":{ + "POSITION":141, + "NORMAL":142, + "TEXCOORD_0":143 + }, + "indices":144, + "material":5 + } + ] + }, + { + "name":"Scene.041", + "primitives":[ + { + "attributes":{ + "POSITION":145, + "NORMAL":146, + "TEXCOORD_0":147 + }, + "indices":148, + "material":2 + } + ] + }, + { + "name":"Scene.044", + "primitives":[ + { + "attributes":{ + "POSITION":149, + "NORMAL":150, + "TEXCOORD_0":151 + }, + "indices":152, + "material":5 + } + ] + }, + { + "name":"Scene.043", + "primitives":[ + { + "attributes":{ + "POSITION":153, + "NORMAL":154, + "TEXCOORD_0":155 + }, + "indices":156, + "material":2 + } + ] + }, + { + "name":"Scene.046", + "primitives":[ + { + "attributes":{ + "POSITION":157, + "NORMAL":158, + "TEXCOORD_0":159 + }, + "indices":152, + "material":5 + } + ] + }, + { + "name":"Scene.045", + "primitives":[ + { + "attributes":{ + "POSITION":160, + "NORMAL":161, + "TEXCOORD_0":162 + }, + "indices":156, + "material":2 + } + ] + }, + { + "name":"Scene.047", + "primitives":[ + { + "attributes":{ + "POSITION":163, + "NORMAL":164, + "TEXCOORD_0":165 + }, + "indices":166, + "material":2 + } + ] + }, + { + "name":"Scene.048", + "primitives":[ + { + "attributes":{ + "POSITION":167, + "NORMAL":168, + "TEXCOORD_0":169 + }, + "indices":170, + "material":2 + } + ] + }, + { + "name":"Scene.049", + "primitives":[ + { + "attributes":{ + "POSITION":171, + "NORMAL":172, + "TEXCOORD_0":173 + }, + "indices":174, + "material":2 + } + ] + }, + { + "name":"Scene.050", + "primitives":[ + { + "attributes":{ + "POSITION":175, + "NORMAL":176, + "TEXCOORD_0":177 + }, + "indices":178, + "material":2 + } + ] + }, + { + "name":"Scene.051", + "primitives":[ + { + "attributes":{ + "POSITION":179, + "NORMAL":180, + "TEXCOORD_0":181 + }, + "indices":182, + "material":2 + } + ] + }, + { + "name":"Scene.053", + "primitives":[ + { + "attributes":{ + "POSITION":183, + "NORMAL":184, + "TEXCOORD_0":185 + }, + "indices":152, + "material":5 + } + ] + }, + { + "name":"Scene.052", + "primitives":[ + { + "attributes":{ + "POSITION":186, + "NORMAL":187, + "TEXCOORD_0":188 + }, + "indices":189, + "material":2 + } + ] + }, + { + "name":"Scene.055", + "primitives":[ + { + "attributes":{ + "POSITION":190, + "NORMAL":191, + "TEXCOORD_0":192 + }, + "indices":152, + "material":5 + } + ] + }, + { + "name":"Scene.056", + "primitives":[ + { + "attributes":{ + "POSITION":193, + "NORMAL":194, + "TEXCOORD_0":195 + }, + "indices":196, + "material":5 + } + ] + }, + { + "name":"Scene.054", + "primitives":[ + { + "attributes":{ + "POSITION":197, + "NORMAL":198, + "TEXCOORD_0":199 + }, + "indices":189, + "material":2 + } + ] + }, + { + "name":"Scene.058", + "primitives":[ + { + "attributes":{ + "POSITION":200, + "NORMAL":201, + "TEXCOORD_0":202 + }, + "indices":203, + "material":5 + } + ] + }, + { + "name":"Scene.057", + "primitives":[ + { + "attributes":{ + "POSITION":204, + "NORMAL":205, + "TEXCOORD_0":206 + }, + "indices":189, + "material":2 + } + ] + }, + { + "name":"Scene.061", + "primitives":[ + { + "attributes":{ + "POSITION":207, + "NORMAL":208, + "TEXCOORD_0":209 + }, + "indices":210, + "material":5 + } + ] + }, + { + "name":"Scene.062", + "primitives":[ + { + "attributes":{ + "POSITION":211, + "NORMAL":212, + "TEXCOORD_0":213 + }, + "indices":214, + "material":5 + } + ] + }, + { + "name":"Scene.060", + "primitives":[ + { + "attributes":{ + "POSITION":215, + "NORMAL":216, + "TEXCOORD_0":217 + }, + "indices":218, + "material":2 + } + ] + }, + { + "name":"Scene.059", + "primitives":[ + { + "attributes":{ + "POSITION":219, + "NORMAL":220, + "TEXCOORD_0":221 + }, + "indices":222, + "material":6 + } + ] + }, + { + "name":"Scene.063", + "primitives":[ + { + "attributes":{ + "POSITION":223, + "NORMAL":224, + "TEXCOORD_0":225 + }, + "indices":226, + "material":6 + } + ] + }, + { + "name":"Scene.065", + "primitives":[ + { + "attributes":{ + "POSITION":227, + "NORMAL":228, + "TEXCOORD_0":229 + }, + "indices":230, + "material":5 + } + ] + }, + { + "name":"Scene.064", + "primitives":[ + { + "attributes":{ + "POSITION":231, + "NORMAL":232, + "TEXCOORD_0":233 + }, + "indices":234, + "material":2 + } + ] + }, + { + "name":"Scene.066", + "primitives":[ + { + "attributes":{ + "POSITION":235, + "NORMAL":236, + "TEXCOORD_0":237 + }, + "indices":238, + "material":2 + } + ] + }, + { + "name":"Scene.067", + "primitives":[ + { + "attributes":{ + "POSITION":239, + "NORMAL":240, + "TEXCOORD_0":241 + }, + "indices":242, + "material":2 + } + ] + }, + { + "name":"Scene.068", + "primitives":[ + { + "attributes":{ + "POSITION":243, + "NORMAL":244, + "TEXCOORD_0":245 + }, + "indices":246, + "material":2 + } + ] + }, + { + "name":"Scene", + "primitives":[ + { + "attributes":{ + "POSITION":4, + "NORMAL":5, + "TEXCOORD_0":6 }, "indices":7, - "material":1 - }, + "material":7 + } + ] + }, + { + "name":"Scene", + "primitives":[ { "attributes":{ - "POSITION":55, - "NORMAL":56, - "TEXCOORD_0":57 + "POSITION":4, + "NORMAL":5, + "TEXCOORD_0":6 }, - "indices":11, - "material":2 - }, + "indices":7, + "material":8 + } + ] + }, + { + "name":"Scene.038", + "primitives":[ { "attributes":{ - "POSITION":58, - "NORMAL":59, - "TEXCOORD_0":60 + "POSITION":129, + "NORMAL":130, + "TEXCOORD_0":131 }, - "indices":15, - "material":3 + "indices":132, + "material":9 + } + ] + }, + { + "name":"Scene.038", + "primitives":[ + { + "attributes":{ + "POSITION":129, + "NORMAL":130, + "TEXCOORD_0":131 + }, + "indices":132, + "material":10 + } + ] + }, + { + "name":"Scene.039", + "primitives":[ + { + "attributes":{ + "POSITION":133, + "NORMAL":134, + "TEXCOORD_0":135 + }, + "indices":136, + "material":9 + } + ] + }, + { + "name":"Scene.039", + "primitives":[ + { + "attributes":{ + "POSITION":133, + "NORMAL":134, + "TEXCOORD_0":135 + }, + "indices":136, + "material":10 + } + ] + }, + { + "name":"Scene.040", + "primitives":[ + { + "attributes":{ + "POSITION":137, + "NORMAL":138, + "TEXCOORD_0":139 + }, + "indices":140, + "material":9 + } + ] + }, + { + "name":"Scene.040", + "primitives":[ + { + "attributes":{ + "POSITION":137, + "NORMAL":138, + "TEXCOORD_0":139 + }, + "indices":140, + "material":10 } ] } @@ -353,28 +2875,64 @@ { "sampler":0, "source":3 + }, + { + "sampler":0, + "source":4 + }, + { + "sampler":0, + "source":5 + }, + { + "sampler":0, + "source":6 + }, + { + "sampler":0, + "source":7 } ], "images":[ { "mimeType":"image/png", "name":"texture_02.png", - "uri":"../../../3D%20Objects/kenney_prototype-textures/PNG/Orange/texture_02.png" + "uri":"../raw-assets/kenney_prototype-textures/PNG/Orange/texture_02.png" }, { "mimeType":"image/png", - "name":"texture_11.png", - "uri":"../../../3D%20Objects/kenney_prototype-textures/PNG/Orange/texture_11.png" + "name":"proto_interaction2.png", + "uri":"../raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Textures/proto_interaction2.png" }, { "mimeType":"image/png", - "name":"texture_01.png", - "uri":"../../../3D%20Objects/kenney_prototype-textures/PNG/Orange/texture_01.png" + "name":"proto_1.png", + "uri":"../raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Textures/proto_1.png" }, { "mimeType":"image/png", - "name":"texture_05.png", - "uri":"../../../3D%20Objects/kenney_prototype-textures/PNG/Orange/texture_05.png" + "name":"proto_interaction.png", + "uri":"../raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Textures/proto_interaction.png" + }, + { + "mimeType":"image/png", + "name":"Proto_grid.png", + "uri":"../raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Textures/Proto_grid.png" + }, + { + "mimeType":"image/png", + "name":"proto_2.png", + "uri":"../raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Textures/proto_2.png" + }, + { + "mimeType":"image/png", + "name":"proto_interaction3.png", + "uri":"../raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Textures/proto_interaction3.png" + }, + { + "mimeType":"image/png", + "name":"proto_interaction4.png", + "uri":"../raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Textures/proto_interaction4.png" } ], "accessors":[ @@ -415,524 +2973,2150 @@ { "bufferView":4, "componentType":5126, - "count":10, + "count":24, "max":[ - 1, - 1, - 1 + 0.19999997317790985, + 0.19999997317790985, + 0.19999997317790985 ], "min":[ - -1, - -1, - -1 + -0.19999997317790985, + -0.19999997317790985, + -0.19999997317790985 ], "type":"VEC3" }, { "bufferView":5, "componentType":5126, - "count":10, + "count":24, "type":"VEC3" }, { "bufferView":6, "componentType":5126, - "count":10, + "count":24, "type":"VEC2" }, { "bufferView":7, "componentType":5123, - "count":12, + "count":36, "type":"SCALAR" }, { "bufferView":8, "componentType":5126, - "count":4, + "count":64, "max":[ - 1, - 1, - -1 + 0.5999999642372131, + 0.5, + 0.9999997615814209 ], "min":[ - -1, - -1, - -1 + -0.5999999642372131, + -0.10000003129243851, + -0.9999997615814209 ], "type":"VEC3" }, { "bufferView":9, "componentType":5126, - "count":4, + "count":64, "type":"VEC3" }, { "bufferView":10, "componentType":5126, - "count":4, + "count":64, "type":"VEC2" }, { "bufferView":11, "componentType":5123, - "count":6, + "count":132, "type":"SCALAR" }, { "bufferView":12, "componentType":5126, - "count":4, + "count":64, "max":[ - 1, - 1, - 1 + 0.3999999463558197, + 0.30000001192092896, + 0.7499998807907104 ], "min":[ - -1, - -1, - -1 + -0.3999999463558197, + -0.10000000149011612, + -0.7499998807907104 ], "type":"VEC3" }, { "bufferView":13, "componentType":5126, - "count":4, + "count":64, "type":"VEC3" }, { "bufferView":14, "componentType":5126, - "count":4, + "count":64, "type":"VEC2" }, { "bufferView":15, - "componentType":5123, - "count":6, - "type":"SCALAR" + "componentType":5126, + "count":64, + "max":[ + 0.2499999701976776, + 0.10000000149011612, + 0.49999988079071045 + ], + "min":[ + -0.24999994039535522, + -0.10000000149011612, + -0.4999998211860657 + ], + "type":"VEC3" }, { "bufferView":16, "componentType":5126, - "count":10, - "max":[ - 1, - 0.6124721765518188, - 1 - ], - "min":[ - -1, - -1, - -1 - ], + "count":64, "type":"VEC3" }, { "bufferView":17, "componentType":5126, - "count":10, - "type":"VEC3" + "count":64, + "type":"VEC2" }, { "bufferView":18, "componentType":5126, - "count":10, - "type":"VEC2" + "count":36, + "max":[ + 1.1920927533992653e-07, + 2.999999523162842, + 0.4999999403953552 + ], + "min":[ + -0.4999999403953552, + -2.6062650568621146e-16, + -1.370965776459343e-07 + ], + "type":"VEC3" }, { "bufferView":19, "componentType":5126, - "count":4, - "max":[ - 1, - 0.6124721765518188, - -1 - ], - "min":[ - -1, - -1, - -1 - ], + "count":36, "type":"VEC3" }, { "bufferView":20, "componentType":5126, - "count":4, - "type":"VEC3" + "count":36, + "type":"VEC2" }, { "bufferView":21, - "componentType":5126, - "count":4, - "type":"VEC2" + "componentType":5123, + "count":60, + "type":"SCALAR" }, { "bufferView":22, "componentType":5126, - "count":4, + "count":36, "max":[ - 1, - 0.6124721765518188, - 1 + 1.1920927533992653e-07, + 1.999999761581421, + 0.4999999403953552 ], "min":[ - -1, - -1, - -1 + -0.4999999403953552, + -2.6062650568621146e-16, + -9.338520357005109e-08 ], "type":"VEC3" }, { "bufferView":23, "componentType":5126, - "count":4, + "count":36, "type":"VEC3" }, { "bufferView":24, "componentType":5126, - "count":4, + "count":36, "type":"VEC2" }, { "bufferView":25, "componentType":5126, - "count":10, + "count":36, "max":[ - 1, - 0.22941121459007263, - 1 + 1.1920927533992653e-07, + 0.9999998807907104, + 0.4999999403953552 ], "min":[ - -1, - -1, - -1 + -0.4999999403953552, + -2.6062650568621146e-16, + -4.967382238874052e-08 ], "type":"VEC3" }, { "bufferView":26, "componentType":5126, - "count":10, + "count":36, "type":"VEC3" }, { "bufferView":27, "componentType":5126, - "count":10, + "count":36, "type":"VEC2" }, { "bufferView":28, "componentType":5126, - "count":4, + "count":98, "max":[ - 1, - 0.22941121459007263, - -1 + 0.49999988079071045, + 2.999999523162842, + 0.4999999403953552 ], "min":[ - -1, - -1, - -1 + -0.5, + -2.1855692367012125e-08, + -0.5000000596046448 ], "type":"VEC3" }, { "bufferView":29, "componentType":5126, - "count":4, + "count":98, "type":"VEC3" }, { "bufferView":30, "componentType":5126, - "count":4, + "count":98, "type":"VEC2" }, { "bufferView":31, - "componentType":5126, - "count":4, - "max":[ - 1, - 0.22941121459007263, - 1 - ], - "min":[ - -1, - -1, - -1 - ], - "type":"VEC3" + "componentType":5123, + "count":192, + "type":"SCALAR" }, { "bufferView":32, "componentType":5126, - "count":4, + "count":98, + "max":[ + 0.4999999403953552, + 1.999999761581421, + 0.4999999403953552 + ], + "min":[ + -0.4999999403953552, + -2.1855692367012125e-08, + -0.5 + ], "type":"VEC3" }, { "bufferView":33, "componentType":5126, - "count":4, - "type":"VEC2" + "count":98, + "type":"VEC3" }, { "bufferView":34, "componentType":5126, - "count":10, - "max":[ - 1, - -0.12506195902824402, - 1 - ], - "min":[ - -1, - -1, - -1 - ], - "type":"VEC3" + "count":98, + "type":"VEC2" }, { "bufferView":35, "componentType":5126, - "count":10, + "count":98, + "max":[ + 0.4999999403953552, + 0.9999998807907104, + 0.4999999403953552 + ], + "min":[ + -0.4999999403953552, + -2.1855692367012125e-08, + -0.5 + ], "type":"VEC3" }, { "bufferView":36, "componentType":5126, - "count":10, - "type":"VEC2" + "count":98, + "type":"VEC3" }, { "bufferView":37, "componentType":5126, - "count":4, - "max":[ - 1, - -0.12506195902824402, - -1 - ], - "min":[ - -1, - -1, - -1 - ], - "type":"VEC3" + "count":98, + "type":"VEC2" }, { "bufferView":38, "componentType":5126, - "count":4, + "count":24, + "max":[ + 0.4999999403953552, + 0.9999998807907104, + 0.4999999403953552 + ], + "min":[ + -0.4999999403953552, + -2.1855692367012125e-08, + -0.5 + ], "type":"VEC3" }, { "bufferView":39, "componentType":5126, - "count":4, - "type":"VEC2" + "count":24, + "type":"VEC3" }, { "bufferView":40, "componentType":5126, - "count":4, - "max":[ - 1, - -0.12506195902824402, - 1 - ], - "min":[ - -1, - -1, - -1 - ], - "type":"VEC3" + "count":24, + "type":"VEC2" }, { "bufferView":41, - "componentType":5126, - "count":4, - "type":"VEC3" + "componentType":5123, + "count":36, + "type":"SCALAR" }, { "bufferView":42, "componentType":5126, - "count":4, - "type":"VEC2" + "count":24, + "max":[ + 0.4999999403953552, + 0.9999998807907104, + 0.9999998807907104 + ], + "min":[ + -0.4999999403953552, + -4.371138473402425e-08, + -0.9999998807907104 + ], + "type":"VEC3" }, { "bufferView":43, "componentType":5126, - "count":10, - "max":[ - 1, - -0.4558880031108856, - 1 - ], - "min":[ - -1, - -1, - -1 - ], + "count":24, "type":"VEC3" }, { "bufferView":44, "componentType":5126, - "count":10, - "type":"VEC3" + "count":24, + "type":"VEC2" }, { "bufferView":45, "componentType":5126, - "count":10, - "type":"VEC2" + "count":24, + "max":[ + 2.499999761581421, + 0.050000015646219254, + 0.4999999403953552 + ], + "min":[ + -2.499999761581421, + -0.050000015646219254, + -0.4999999403953552 + ], + "type":"VEC3" }, { "bufferView":46, "componentType":5126, - "count":4, - "max":[ - 1, - -0.4558880031108856, - -1 - ], - "min":[ - -1, - -1, - -1 - ], + "count":24, "type":"VEC3" }, { "bufferView":47, "componentType":5126, - "count":4, - "type":"VEC3" + "count":24, + "type":"VEC2" }, { "bufferView":48, "componentType":5126, - "count":4, - "type":"VEC2" + "count":24, + "max":[ + 2.499999761581421, + 0.050000037997961044, + 0.9999998807907104 + ], + "min":[ + -2.499999761581421, + -0.050000037997961044, + -0.9999998807907104 + ], + "type":"VEC3" }, { "bufferView":49, "componentType":5126, - "count":4, - "max":[ - 1, - -0.4558880031108856, - 1 - ], - "min":[ - -1, - -1, - -1 - ], + "count":24, "type":"VEC3" }, { "bufferView":50, "componentType":5126, - "count":4, - "type":"VEC3" + "count":24, + "type":"VEC2" }, { "bufferView":51, "componentType":5126, - "count":4, - "type":"VEC2" + "count":24, + "max":[ + 2.499999761581421, + 0.050000060349702835, + 1.499999761581421 + ], + "min":[ + -2.499999761581421, + -0.050000060349702835, + -1.499999761581421 + ], + "type":"VEC3" }, { "bufferView":52, "componentType":5126, - "count":10, - "max":[ - 1, - 1.6414799690246582, - 1 - ], - "min":[ - -1, - -1, - -1 - ], + "count":24, "type":"VEC3" }, { "bufferView":53, "componentType":5126, - "count":10, - "type":"VEC3" + "count":24, + "type":"VEC2" }, { "bufferView":54, "componentType":5126, - "count":10, - "type":"VEC2" + "count":24, + "max":[ + 2.499999761581421, + 0.05000007897615433, + 1.999999761581421 + ], + "min":[ + -2.499999761581421, + -0.05000007897615433, + -1.999999761581421 + ], + "type":"VEC3" }, { "bufferView":55, "componentType":5126, - "count":4, - "max":[ - 1, - 1.6414799690246582, - -1 - ], - "min":[ - -1, - -1, - -1 - ], + "count":24, "type":"VEC3" }, { "bufferView":56, "componentType":5126, - "count":4, - "type":"VEC3" + "count":24, + "type":"VEC2" }, { "bufferView":57, "componentType":5126, - "count":4, - "type":"VEC2" + "count":24, + "max":[ + 2.499999761581421, + 0.05000010132789612, + 2.499999761581421 + ], + "min":[ + -2.499999761581421, + -0.05000010132789612, + -2.499999761581421 + ], + "type":"VEC3" }, { "bufferView":58, "componentType":5126, - "count":4, - "max":[ - 1, - 1.6414799690246582, - 1 - ], - "min":[ - -1, - -1, - -1 - ], + "count":24, "type":"VEC3" }, { "bufferView":59, "componentType":5126, - "count":4, - "type":"VEC3" + "count":24, + "type":"VEC2" }, { "bufferView":60, "componentType":5126, - "count":4, + "count":18, + "max":[ + 0.4999999403953552, + 3.0003318786621094, + 0.00022745128080714494 + ], + "min":[ + -0.4999999403953552, + 0.0002274513099109754, + -5.999771595001221 + ], + "type":"VEC3" + }, + { + "bufferView":61, + "componentType":5126, + "count":18, + "type":"VEC3" + }, + { + "bufferView":62, + "componentType":5126, + "count":18, "type":"VEC2" + }, + { + "bufferView":63, + "componentType":5123, + "count":24, + "type":"SCALAR" + }, + { + "bufferView":64, + "componentType":5126, + "count":18, + "max":[ + 0.4999999403953552, + 2.000028371810913, + -3.5524364648154005e-05 + ], + "min":[ + -0.4999999403953552, + 2.8614193070097826e-05, + -4.000034809112549 + ], + "type":"VEC3" + }, + { + "bufferView":65, + "componentType":5126, + "count":18, + "type":"VEC3" + }, + { + "bufferView":66, + "componentType":5126, + "count":18, + "type":"VEC2" + }, + { + "bufferView":67, + "componentType":5123, + "count":24, + "type":"SCALAR" + }, + { + "bufferView":68, + "componentType":5126, + "count":18, + "max":[ + 0.4999999403953552, + 1.0003323554992676, + 0.00022757049009669572 + ], + "min":[ + -0.4999999403953552, + 0.00033243000507354736, + -1.999772071838379 + ], + "type":"VEC3" + }, + { + "bufferView":69, + "componentType":5126, + "count":18, + "type":"VEC3" + }, + { + "bufferView":70, + "componentType":5126, + "count":18, + "type":"VEC2" + }, + { + "bufferView":71, + "componentType":5123, + "count":24, + "type":"SCALAR" + }, + { + "bufferView":72, + "componentType":5126, + "count":236, + "max":[ + 0.4999999403953552, + 3.0003318786621094, + 0.00022745128080714494 + ], + "min":[ + -0.4999999403953552, + 0.0002274513099109754, + -5.999771595001221 + ], + "type":"VEC3" + }, + { + "bufferView":73, + "componentType":5126, + "count":236, + "type":"VEC3" + }, + { + "bufferView":74, + "componentType":5126, + "count":236, + "type":"VEC2" + }, + { + "bufferView":75, + "componentType":5123, + "count":372, + "type":"SCALAR" + }, + { + "bufferView":76, + "componentType":5126, + "count":161, + "max":[ + 0.4999999403953552, + 2.000028371810913, + -3.5524364648154005e-05 + ], + "min":[ + -0.4999999403953552, + 2.8614193070097826e-05, + -4.000034809112549 + ], + "type":"VEC3" + }, + { + "bufferView":77, + "componentType":5126, + "count":161, + "type":"VEC3" + }, + { + "bufferView":78, + "componentType":5126, + "count":161, + "type":"VEC2" + }, + { + "bufferView":79, + "componentType":5123, + "count":252, + "type":"SCALAR" + }, + { + "bufferView":80, + "componentType":5126, + "count":85, + "max":[ + 0.4999999403953552, + 1.0003323554992676, + 0.00022757049009669572 + ], + "min":[ + -0.4999999403953552, + 0.00033243000507354736, + -1.999772071838379 + ], + "type":"VEC3" + }, + { + "bufferView":81, + "componentType":5126, + "count":85, + "type":"VEC3" + }, + { + "bufferView":82, + "componentType":5126, + "count":85, + "type":"VEC2" + }, + { + "bufferView":83, + "componentType":5123, + "count":132, + "type":"SCALAR" + }, + { + "bufferView":84, + "componentType":5126, + "count":24, + "max":[ + 0.04999999329447746, + 2.999999523162842, + 0.4999999403953552 + ], + "min":[ + -0.04999999329447746, + -2.1855692367012125e-08, + -0.5000000596046448 + ], + "type":"VEC3" + }, + { + "bufferView":85, + "componentType":5126, + "count":24, + "type":"VEC3" + }, + { + "bufferView":86, + "componentType":5126, + "count":24, + "type":"VEC2" + }, + { + "bufferView":87, + "componentType":5126, + "count":24, + "max":[ + 0.04999999329447746, + 2.999999523162842, + 0.9999998807907104 + ], + "min":[ + -0.04999999329447746, + -1.6292067073209182e-07, + -1 + ], + "type":"VEC3" + }, + { + "bufferView":88, + "componentType":5126, + "count":24, + "type":"VEC3" + }, + { + "bufferView":89, + "componentType":5126, + "count":24, + "type":"VEC2" + }, + { + "bufferView":90, + "componentType":5126, + "count":24, + "max":[ + 0.04999999329447746, + 2.999999523162842, + 1.499999761581421 + ], + "min":[ + -0.04999999329447746, + -3.0398561534639157e-07, + -1.4999998807907104 + ], + "type":"VEC3" + }, + { + "bufferView":91, + "componentType":5126, + "count":24, + "type":"VEC3" + }, + { + "bufferView":92, + "componentType":5126, + "count":24, + "type":"VEC2" + }, + { + "bufferView":93, + "componentType":5126, + "count":24, + "max":[ + 0.04999541491270065, + 2.999999523162842, + 1.9999988079071045 + ], + "min":[ + -0.0500030443072319, + -8.742281210061265e-08, + -2.0000009536743164 + ], + "type":"VEC3" + }, + { + "bufferView":94, + "componentType":5126, + "count":24, + "type":"VEC3" + }, + { + "bufferView":95, + "componentType":5126, + "count":24, + "type":"VEC2" + }, + { + "bufferView":96, + "componentType":5126, + "count":24, + "max":[ + 0.04999999329447746, + 2.999999523162842, + 2.499999761581421 + ], + "min":[ + -0.04999999329447746, + -2.2848773539863032e-07, + -2.5 + ], + "type":"VEC3" + }, + { + "bufferView":97, + "componentType":5126, + "count":24, + "type":"VEC3" + }, + { + "bufferView":98, + "componentType":5126, + "count":24, + "type":"VEC2" + }, + { + "bufferView":99, + "componentType":5126, + "count":24, + "max":[ + 0.04999999329447746, + 1.999999761581421, + 0.4999999403953552 + ], + "min":[ + -0.04999999329447746, + -2.1855692367012125e-08, + -0.5 + ], + "type":"VEC3" + }, + { + "bufferView":100, + "componentType":5126, + "count":24, + "type":"VEC3" + }, + { + "bufferView":101, + "componentType":5126, + "count":24, + "type":"VEC2" + }, + { + "bufferView":102, + "componentType":5126, + "count":24, + "max":[ + 0.04999999329447746, + 1.999999761581421, + 0.9999998807907104 + ], + "min":[ + -0.04999999329447746, + -4.371138473402425e-08, + -1 + ], + "type":"VEC3" + }, + { + "bufferView":103, + "componentType":5126, + "count":24, + "type":"VEC3" + }, + { + "bufferView":104, + "componentType":5126, + "count":24, + "type":"VEC2" + }, + { + "bufferView":105, + "componentType":5126, + "count":24, + "max":[ + 0.04999999329447746, + 1.999999761581421, + 1.499999761581421 + ], + "min":[ + -0.04999999329447746, + -6.556707177196586e-08, + -1.4999998807907104 + ], + "type":"VEC3" + }, + { + "bufferView":106, + "componentType":5126, + "count":24, + "type":"VEC3" + }, + { + "bufferView":107, + "componentType":5126, + "count":24, + "type":"VEC2" + }, + { + "bufferView":108, + "componentType":5126, + "count":24, + "max":[ + 0.04999999329447746, + 1.999999761581421, + 1.999999761581421 + ], + "min":[ + -0.04999999329447746, + -8.74227694680485e-08, + -1.999999761581421 + ], + "type":"VEC3" + }, + { + "bufferView":109, + "componentType":5126, + "count":24, + "type":"VEC3" + }, + { + "bufferView":110, + "componentType":5126, + "count":24, + "type":"VEC2" + }, + { + "bufferView":111, + "componentType":5126, + "count":24, + "max":[ + 0.04999999329447746, + 1.999999761581421, + 2.499999761581421 + ], + "min":[ + -0.04999999329447746, + -1.0927846005870379e-07, + -2.499999761581421 + ], + "type":"VEC3" + }, + { + "bufferView":112, + "componentType":5126, + "count":24, + "type":"VEC3" + }, + { + "bufferView":113, + "componentType":5126, + "count":24, + "type":"VEC2" + }, + { + "bufferView":114, + "componentType":5126, + "count":24, + "max":[ + 0.050000183284282684, + 0.9999998807907104, + 0.4999999403953552 + ], + "min":[ + -0.050000183284282684, + -1.813040206855021e-08, + -0.5 + ], + "type":"VEC3" + }, + { + "bufferView":115, + "componentType":5126, + "count":24, + "type":"VEC3" + }, + { + "bufferView":116, + "componentType":5126, + "count":24, + "type":"VEC2" + }, + { + "bufferView":117, + "componentType":5126, + "count":24, + "max":[ + 0.04999999329447746, + 0.9999998807907104, + 0.9999998807907104 + ], + "min":[ + -0.04999999329447746, + -4.371138473402425e-08, + -0.9999998807907104 + ], + "type":"VEC3" + }, + { + "bufferView":118, + "componentType":5126, + "count":24, + "type":"VEC3" + }, + { + "bufferView":119, + "componentType":5126, + "count":24, + "type":"VEC2" + }, + { + "bufferView":120, + "componentType":5126, + "count":24, + "max":[ + 0.04999999329447746, + 1, + 1.499999761581421 + ], + "min":[ + -0.04999999329447746, + -6.556707177196586e-08, + -1.499999761581421 + ], + "type":"VEC3" + }, + { + "bufferView":121, + "componentType":5126, + "count":24, + "type":"VEC3" + }, + { + "bufferView":122, + "componentType":5126, + "count":24, + "type":"VEC2" + }, + { + "bufferView":123, + "componentType":5126, + "count":24, + "max":[ + 0.04999999329447746, + 1, + 1.999999761581421 + ], + "min":[ + -0.04999999329447746, + -1.2916968827880737e-08, + -1.999999761581421 + ], + "type":"VEC3" + }, + { + "bufferView":124, + "componentType":5126, + "count":24, + "type":"VEC3" + }, + { + "bufferView":125, + "componentType":5126, + "count":24, + "type":"VEC2" + }, + { + "bufferView":126, + "componentType":5126, + "count":24, + "max":[ + 0.04999999329447746, + 1, + 2.499999761581421 + ], + "min":[ + -0.04999999329447746, + -1.0927846005870379e-07, + -2.499999761581421 + ], + "type":"VEC3" + }, + { + "bufferView":127, + "componentType":5126, + "count":24, + "type":"VEC3" + }, + { + "bufferView":128, + "componentType":5126, + "count":24, + "type":"VEC2" + }, + { + "bufferView":129, + "componentType":5126, + "count":382, + "max":[ + 0.05724317580461502, + 0.4224211871623993, + 0.05457004904747009 + ], + "min":[ + -0.05724314972758293, + 0.0012002572184428573, + -0.05991627275943756 + ], + "type":"VEC3" + }, + { + "bufferView":130, + "componentType":5126, + "count":382, + "type":"VEC3" + }, + { + "bufferView":131, + "componentType":5126, + "count":382, + "type":"VEC2" + }, + { + "bufferView":132, + "componentType":5123, + "count":540, + "type":"SCALAR" + }, + { + "bufferView":133, + "componentType":5126, + "count":114, + "max":[ + 0.06740549951791763, + 0.10032343864440918, + 0.02499999850988388 + ], + "min":[ + -0.06740549951791763, + -0.10032343864440918, + -0.02500000223517418 + ], + "type":"VEC3" + }, + { + "bufferView":134, + "componentType":5126, + "count":114, + "type":"VEC3" + }, + { + "bufferView":135, + "componentType":5126, + "count":114, + "type":"VEC2" + }, + { + "bufferView":136, + "componentType":5123, + "count":192, + "type":"SCALAR" + }, + { + "bufferView":137, + "componentType":5126, + "count":72, + "max":[ + 0.04999999329447746, + 0.04999999329447746, + 0.005000004079192877 + ], + "min":[ + -0.04999999329447746, + -0.04999999329447746, + -0.005000004079192877 + ], + "type":"VEC3" + }, + { + "bufferView":138, + "componentType":5126, + "count":72, + "type":"VEC3" + }, + { + "bufferView":139, + "componentType":5126, + "count":72, + "type":"VEC2" + }, + { + "bufferView":140, + "componentType":5123, + "count":132, + "type":"SCALAR" + }, + { + "bufferView":141, + "componentType":5126, + "count":24, + "max":[ + 0.018591072410345078, + 1.3600126504898071, + 1.7428401708602905 + ], + "min":[ + -0.018591072410345078, + -1.3600126504898071, + -1.7428401708602905 + ], + "type":"VEC3" + }, + { + "bufferView":142, + "componentType":5126, + "count":24, + "type":"VEC3" + }, + { + "bufferView":143, + "componentType":5126, + "count":24, + "type":"VEC2" + }, + { + "bufferView":144, + "componentType":5123, + "count":36, + "type":"SCALAR" + }, + { + "bufferView":145, + "componentType":5126, + "count":82, + "max":[ + 0.04999999329447746, + 2.9999873638153076, + 1.999999761581421 + ], + "min":[ + -0.04999999329447746, + -1.2485186744015664e-05, + -2 + ], + "type":"VEC3" + }, + { + "bufferView":146, + "componentType":5126, + "count":82, + "type":"VEC3" + }, + { + "bufferView":147, + "componentType":5126, + "count":82, + "type":"VEC2" + }, + { + "bufferView":148, + "componentType":5123, + "count":132, + "type":"SCALAR" + }, + { + "bufferView":149, + "componentType":5126, + "count":24, + "max":[ + 0.03084360621869564, + 0.9216107726097107, + 0.38780587911605835 + ], + "min":[ + -0.03084360435605049, + -0.9216108918190002, + -0.3878057301044464 + ], + "type":"VEC3" + }, + { + "bufferView":150, + "componentType":5126, + "count":24, + "type":"VEC3" + }, + { + "bufferView":151, + "componentType":5126, + "count":24, + "type":"VEC2" + }, + { + "bufferView":152, + "componentType":5123, + "count":36, + "type":"SCALAR" + }, + { + "bufferView":153, + "componentType":5126, + "count":76, + "max":[ + 0.04999999329447746, + 1.9998888969421387, + 0.4999999403953552 + ], + "min":[ + -0.04999999329447746, + -0.00011100569099653512, + -0.5 + ], + "type":"VEC3" + }, + { + "bufferView":154, + "componentType":5126, + "count":76, + "type":"VEC3" + }, + { + "bufferView":155, + "componentType":5126, + "count":76, + "type":"VEC2" + }, + { + "bufferView":156, + "componentType":5123, + "count":132, + "type":"SCALAR" + }, + { + "bufferView":157, + "componentType":5126, + "count":24, + "max":[ + 0.03084360621869564, + 1.8431105613708496, + 0.00036397576332092285 + ], + "min":[ + -0.03084360435605049, + -0.00011105053272331133, + -0.7752476334571838 + ], + "type":"VEC3" + }, + { + "bufferView":158, + "componentType":5126, + "count":24, + "type":"VEC3" + }, + { + "bufferView":159, + "componentType":5126, + "count":24, + "type":"VEC2" + }, + { + "bufferView":160, + "componentType":5126, + "count":76, + "max":[ + 0.04999999329447746, + 1.9998888969421387, + 0.4999999403953552 + ], + "min":[ + -0.04999999329447746, + -0.00011100569099653512, + -0.5 + ], + "type":"VEC3" + }, + { + "bufferView":161, + "componentType":5126, + "count":76, + "type":"VEC3" + }, + { + "bufferView":162, + "componentType":5126, + "count":76, + "type":"VEC2" + }, + { + "bufferView":163, + "componentType":5126, + "count":460, + "max":[ + 0.04999999329447746, + 2.999999523162842, + 0.2499999701976776 + ], + "min":[ + -0.04999999329447746, + -1.9868542366907604e-08, + -0.25000008940696716 + ], + "type":"VEC3" + }, + { + "bufferView":164, + "componentType":5126, + "count":460, + "type":"VEC3" + }, + { + "bufferView":165, + "componentType":5126, + "count":460, + "type":"VEC2" + }, + { + "bufferView":166, + "componentType":5123, + "count":1152, + "type":"SCALAR" + }, + { + "bufferView":167, + "componentType":5126, + "count":340, + "max":[ + 0.04999999329447746, + 2.0999996662139893, + 0.2499999701976776 + ], + "min":[ + -0.04999999329447746, + -1.9868542366907604e-08, + -0.2500000596046448 + ], + "type":"VEC3" + }, + { + "bufferView":168, + "componentType":5126, + "count":340, + "type":"VEC3" + }, + { + "bufferView":169, + "componentType":5126, + "count":340, + "type":"VEC2" + }, + { + "bufferView":170, + "componentType":5123, + "count":828, + "type":"SCALAR" + }, + { + "bufferView":171, + "componentType":5126, + "count":220, + "max":[ + 0.04999999329447746, + 1.1999998092651367, + 0.2499999701976776 + ], + "min":[ + -0.04999999329447746, + -2.582900471281846e-08, + -0.2500000298023224 + ], + "type":"VEC3" + }, + { + "bufferView":172, + "componentType":5126, + "count":220, + "type":"VEC3" + }, + { + "bufferView":173, + "componentType":5126, + "count":220, + "type":"VEC2" + }, + { + "bufferView":174, + "componentType":5123, + "count":504, + "type":"SCALAR" + }, + { + "bufferView":175, + "componentType":5126, + "count":241, + "max":[ + 0.19999997317790985, + 6.073268110640129e-08, + 0.19999991357326508 + ], + "min":[ + -0.19999997317790985, + -0.5, + -0.20000003278255463 + ], + "type":"VEC3" + }, + { + "bufferView":176, + "componentType":5126, + "count":241, + "type":"VEC3" + }, + { + "bufferView":177, + "componentType":5126, + "count":241, + "type":"VEC2" + }, + { + "bufferView":178, + "componentType":5123, + "count":432, + "type":"SCALAR" + }, + { + "bufferView":179, + "componentType":5126, + "count":102, + "max":[ + 0.4999999403953552, + 0.9999998807907104, + 0.4999999403953552 + ], + "min":[ + -0.4999999403953552, + -2.1855692367012125e-08, + -0.5 + ], + "type":"VEC3" + }, + { + "bufferView":180, + "componentType":5126, + "count":102, + "type":"VEC3" + }, + { + "bufferView":181, + "componentType":5126, + "count":102, + "type":"VEC2" + }, + { + "bufferView":182, + "componentType":5123, + "count":168, + "type":"SCALAR" + }, + { + "bufferView":183, + "componentType":5126, + "count":24, + "max":[ + 0.03084360621869564, + 1.8431105613708496, + 0.00036397576332092285 + ], + "min":[ + -0.03084360435605049, + -0.00011105053272331133, + -0.7752476334571838 + ], + "type":"VEC3" + }, + { + "bufferView":184, + "componentType":5126, + "count":24, + "type":"VEC3" + }, + { + "bufferView":185, + "componentType":5126, + "count":24, + "type":"VEC2" + }, + { + "bufferView":186, + "componentType":5126, + "count":170, + "max":[ + 0.07151994109153748, + 1.9998888969421387, + 0.9999998807907104 + ], + "min":[ + -0.07151994109153748, + -0.00011103411816293374, + -0.9999998807907104 + ], + "type":"VEC3" + }, + { + "bufferView":187, + "componentType":5126, + "count":170, + "type":"VEC3" + }, + { + "bufferView":188, + "componentType":5126, + "count":170, + "type":"VEC2" + }, + { + "bufferView":189, + "componentType":5123, + "count":348, + "type":"SCALAR" + }, + { + "bufferView":190, + "componentType":5126, + "count":24, + "max":[ + 0.03084360621869564, + 1.8431105613708496, + 0.00036397576332092285 + ], + "min":[ + -0.03084360435605049, + -0.00011105053272331133, + -0.7752476334571838 + ], + "type":"VEC3" + }, + { + "bufferView":191, + "componentType":5126, + "count":24, + "type":"VEC3" + }, + { + "bufferView":192, + "componentType":5126, + "count":24, + "type":"VEC2" + }, + { + "bufferView":193, + "componentType":5126, + "count":24, + "max":[ + 0.030843671411275864, + 1.8431105613708496, + 0.7752476334571838 + ], + "min":[ + -0.03084360621869564, + -0.00011105053272331133, + -0.00036397846997715533 + ], + "type":"VEC3" + }, + { + "bufferView":194, + "componentType":5126, + "count":24, + "type":"VEC3" + }, + { + "bufferView":195, + "componentType":5126, + "count":24, + "type":"VEC2" + }, + { + "bufferView":196, + "componentType":5123, + "count":36, + "type":"SCALAR" + }, + { + "bufferView":197, + "componentType":5126, + "count":170, + "max":[ + 0.07151994109153748, + 1.9998888969421387, + 0.9999998807907104 + ], + "min":[ + -0.07151994109153748, + -0.00011103411816293374, + -0.9999998807907104 + ], + "type":"VEC3" + }, + { + "bufferView":198, + "componentType":5126, + "count":170, + "type":"VEC3" + }, + { + "bufferView":199, + "componentType":5126, + "count":170, + "type":"VEC2" + }, + { + "bufferView":200, + "componentType":5126, + "count":72, + "max":[ + 0.5816828608512878, + 1.8431105613708496, + 0.581684947013855 + ], + "min":[ + -0.5816853642463684, + -0.00011105053272331133, + -0.5816827416419983 + ], + "type":"VEC3" + }, + { + "bufferView":201, + "componentType":5126, + "count":72, + "type":"VEC3" + }, + { + "bufferView":202, + "componentType":5126, + "count":72, + "type":"VEC2" + }, + { + "bufferView":203, + "componentType":5123, + "count":132, + "type":"SCALAR" + }, + { + "bufferView":204, + "componentType":5126, + "count":170, + "max":[ + 0.07151994109153748, + 1.9998888969421387, + 0.9999998807907104 + ], + "min":[ + -0.07151994109153748, + -0.00011103411816293374, + -0.9999998807907104 + ], + "type":"VEC3" + }, + { + "bufferView":205, + "componentType":5126, + "count":170, + "type":"VEC3" + }, + { + "bufferView":206, + "componentType":5126, + "count":170, + "type":"VEC2" + }, + { + "bufferView":207, + "componentType":5126, + "count":24, + "max":[ + 0.00036398175870999694, + 1.8431105613708496, + 0.03084360435605049 + ], + "min":[ + -0.9449979066848755, + -0.0001110579542000778, + -0.030843790620565414 + ], + "type":"VEC3" + }, + { + "bufferView":208, + "componentType":5126, + "count":24, + "type":"VEC3" + }, + { + "bufferView":209, + "componentType":5126, + "count":24, + "type":"VEC2" + }, + { + "bufferView":210, + "componentType":5123, + "count":36, + "type":"SCALAR" + }, + { + "bufferView":211, + "componentType":5126, + "count":24, + "max":[ + 0.9449979066848755, + 1.8431105613708496, + 0.03084360621869564 + ], + "min":[ + -0.00036398175870999694, + -0.0001110579542000778, + -0.030843788757920265 + ], + "type":"VEC3" + }, + { + "bufferView":212, + "componentType":5126, + "count":24, + "type":"VEC3" + }, + { + "bufferView":213, + "componentType":5126, + "count":24, + "type":"VEC2" + }, + { + "bufferView":214, + "componentType":5123, + "count":36, + "type":"SCALAR" + }, + { + "bufferView":215, + "componentType":5126, + "count":52, + "max":[ + 0.9999996423721313, + 2, + 0.9999998807907104 + ], + "min":[ + -1.0000001192092896, + -1.6292067073209182e-07, + -1.000000238418579 + ], + "type":"VEC3" + }, + { + "bufferView":216, + "componentType":5126, + "count":52, + "type":"VEC3" + }, + { + "bufferView":217, + "componentType":5126, + "count":52, + "type":"VEC2" + }, + { + "bufferView":218, + "componentType":5123, + "count":84, + "type":"SCALAR" + }, + { + "bufferView":219, + "componentType":5126, + "count":506, + "max":[ + 1.4354559183120728, + 3.999999523162842, + 0.9999998807907104 + ], + "min":[ + -1.4354559183120728, + -4.371138473402425e-08, + -1 + ], + "type":"VEC3" + }, + { + "bufferView":220, + "componentType":5126, + "count":506, + "type":"VEC3" + }, + { + "bufferView":221, + "componentType":5126, + "count":506, + "type":"VEC2" + }, + { + "bufferView":222, + "componentType":5123, + "count":1008, + "type":"SCALAR" + }, + { + "bufferView":223, + "componentType":5126, + "count":712, + "max":[ + 1.4354559183120728, + 5.999999046325684, + 0.9999998807907104 + ], + "min":[ + -1.4354559183120728, + -4.371138473402425e-08, + -1 + ], + "type":"VEC3" + }, + { + "bufferView":224, + "componentType":5126, + "count":712, + "type":"VEC3" + }, + { + "bufferView":225, + "componentType":5126, + "count":712, + "type":"VEC2" + }, + { + "bufferView":226, + "componentType":5123, + "count":1464, + "type":"SCALAR" + }, + { + "bufferView":227, + "componentType":5126, + "count":24, + "max":[ + 0, + 0.05000005289912224, + 0.4999999403953552 + ], + "min":[ + -0.4999999403953552, + -6.069742397585287e-08, + -0.5 + ], + "type":"VEC3" + }, + { + "bufferView":228, + "componentType":5126, + "count":24, + "type":"VEC3" + }, + { + "bufferView":229, + "componentType":5126, + "count":24, + "type":"VEC2" + }, + { + "bufferView":230, + "componentType":5123, + "count":36, + "type":"SCALAR" + }, + { + "bufferView":231, + "componentType":5126, + "count":48, + "max":[ + 0.2499999701976776, + 0.4999999403953552, + 0.4999999403953552 + ], + "min":[ + -0.2499999701976776, + -1.0927846183506063e-08, + -0.5 + ], + "type":"VEC3" + }, + { + "bufferView":232, + "componentType":5126, + "count":48, + "type":"VEC3" + }, + { + "bufferView":233, + "componentType":5126, + "count":48, + "type":"VEC2" + }, + { + "bufferView":234, + "componentType":5123, + "count":84, + "type":"SCALAR" + }, + { + "bufferView":235, + "componentType":5126, + "count":52, + "max":[ + 1.0006628036499023, + 0.5223727226257324, + 1.5031088590621948 + ], + "min":[ + -1.0006264448165894, + -0.022372841835021973, + -1.5032962560653687 + ], + "type":"VEC3" + }, + { + "bufferView":236, + "componentType":5126, + "count":52, + "type":"VEC3" + }, + { + "bufferView":237, + "componentType":5126, + "count":52, + "type":"VEC2" + }, + { + "bufferView":238, + "componentType":5123, + "count":84, + "type":"SCALAR" + }, + { + "bufferView":239, + "componentType":5126, + "count":102, + "max":[ + 0.4999999403953552, + 1.499999761581421, + 0.4999999403953552 + ], + "min":[ + -0.4999999403953552, + -2.1855692367012125e-08, + -0.5 + ], + "type":"VEC3" + }, + { + "bufferView":240, + "componentType":5126, + "count":102, + "type":"VEC3" + }, + { + "bufferView":241, + "componentType":5126, + "count":102, + "type":"VEC2" + }, + { + "bufferView":242, + "componentType":5123, + "count":168, + "type":"SCALAR" + }, + { + "bufferView":243, + "componentType":5126, + "count":94, + "max":[ + 0.4999999403953552, + 1.999999761581421, + 0.4999999403953552 + ], + "min":[ + -0.4999999403953552, + -2.1855692367012125e-08, + -0.5 + ], + "type":"VEC3" + }, + { + "bufferView":244, + "componentType":5126, + "count":94, + "type":"VEC3" + }, + { + "bufferView":245, + "componentType":5126, + "count":94, + "type":"VEC2" + }, + { + "bufferView":246, + "componentType":5123, + "count":168, + "type":"SCALAR" } ], "bufferViews":[ @@ -962,345 +5146,1461 @@ }, { "buffer":0, - "byteLength":120, + "byteLength":288, "byteOffset":840, "target":34962 }, { "buffer":0, - "byteLength":120, - "byteOffset":960, + "byteLength":288, + "byteOffset":1128, "target":34962 }, { "buffer":0, - "byteLength":80, - "byteOffset":1080, + "byteLength":192, + "byteOffset":1416, "target":34962 }, { "buffer":0, - "byteLength":24, - "byteOffset":1160, + "byteLength":72, + "byteOffset":1608, "target":34963 }, { "buffer":0, - "byteLength":48, - "byteOffset":1184, + "byteLength":768, + "byteOffset":1680, "target":34962 }, { "buffer":0, - "byteLength":48, - "byteOffset":1232, + "byteLength":768, + "byteOffset":2448, "target":34962 }, { "buffer":0, - "byteLength":32, - "byteOffset":1280, + "byteLength":512, + "byteOffset":3216, "target":34962 }, { "buffer":0, - "byteLength":12, - "byteOffset":1312, + "byteLength":264, + "byteOffset":3728, "target":34963 }, { "buffer":0, - "byteLength":48, - "byteOffset":1324, + "byteLength":768, + "byteOffset":3992, "target":34962 }, { "buffer":0, - "byteLength":48, - "byteOffset":1372, + "byteLength":768, + "byteOffset":4760, "target":34962 }, { "buffer":0, - "byteLength":32, - "byteOffset":1420, + "byteLength":512, + "byteOffset":5528, "target":34962 }, { "buffer":0, - "byteLength":12, - "byteOffset":1452, + "byteLength":768, + "byteOffset":6040, + "target":34962 + }, + { + "buffer":0, + "byteLength":768, + "byteOffset":6808, + "target":34962 + }, + { + "buffer":0, + "byteLength":512, + "byteOffset":7576, + "target":34962 + }, + { + "buffer":0, + "byteLength":432, + "byteOffset":8088, + "target":34962 + }, + { + "buffer":0, + "byteLength":432, + "byteOffset":8520, + "target":34962 + }, + { + "buffer":0, + "byteLength":288, + "byteOffset":8952, + "target":34962 + }, + { + "buffer":0, + "byteLength":120, + "byteOffset":9240, "target":34963 }, { "buffer":0, - "byteLength":120, - "byteOffset":1464, + "byteLength":432, + "byteOffset":9360, "target":34962 }, { "buffer":0, - "byteLength":120, - "byteOffset":1584, + "byteLength":432, + "byteOffset":9792, "target":34962 }, { "buffer":0, - "byteLength":80, - "byteOffset":1704, + "byteLength":288, + "byteOffset":10224, + "target":34962 + }, + { + "buffer":0, + "byteLength":432, + "byteOffset":10512, + "target":34962 + }, + { + "buffer":0, + "byteLength":432, + "byteOffset":10944, + "target":34962 + }, + { + "buffer":0, + "byteLength":288, + "byteOffset":11376, + "target":34962 + }, + { + "buffer":0, + "byteLength":1176, + "byteOffset":11664, + "target":34962 + }, + { + "buffer":0, + "byteLength":1176, + "byteOffset":12840, + "target":34962 + }, + { + "buffer":0, + "byteLength":784, + "byteOffset":14016, + "target":34962 + }, + { + "buffer":0, + "byteLength":384, + "byteOffset":14800, + "target":34963 + }, + { + "buffer":0, + "byteLength":1176, + "byteOffset":15184, + "target":34962 + }, + { + "buffer":0, + "byteLength":1176, + "byteOffset":16360, + "target":34962 + }, + { + "buffer":0, + "byteLength":784, + "byteOffset":17536, + "target":34962 + }, + { + "buffer":0, + "byteLength":1176, + "byteOffset":18320, + "target":34962 + }, + { + "buffer":0, + "byteLength":1176, + "byteOffset":19496, + "target":34962 + }, + { + "buffer":0, + "byteLength":784, + "byteOffset":20672, + "target":34962 + }, + { + "buffer":0, + "byteLength":288, + "byteOffset":21456, + "target":34962 + }, + { + "buffer":0, + "byteLength":288, + "byteOffset":21744, + "target":34962 + }, + { + "buffer":0, + "byteLength":192, + "byteOffset":22032, + "target":34962 + }, + { + "buffer":0, + "byteLength":72, + "byteOffset":22224, + "target":34963 + }, + { + "buffer":0, + "byteLength":288, + "byteOffset":22296, + "target":34962 + }, + { + "buffer":0, + "byteLength":288, + "byteOffset":22584, + "target":34962 + }, + { + "buffer":0, + "byteLength":192, + "byteOffset":22872, + "target":34962 + }, + { + "buffer":0, + "byteLength":288, + "byteOffset":23064, + "target":34962 + }, + { + "buffer":0, + "byteLength":288, + "byteOffset":23352, + "target":34962 + }, + { + "buffer":0, + "byteLength":192, + "byteOffset":23640, + "target":34962 + }, + { + "buffer":0, + "byteLength":288, + "byteOffset":23832, + "target":34962 + }, + { + "buffer":0, + "byteLength":288, + "byteOffset":24120, + "target":34962 + }, + { + "buffer":0, + "byteLength":192, + "byteOffset":24408, + "target":34962 + }, + { + "buffer":0, + "byteLength":288, + "byteOffset":24600, + "target":34962 + }, + { + "buffer":0, + "byteLength":288, + "byteOffset":24888, + "target":34962 + }, + { + "buffer":0, + "byteLength":192, + "byteOffset":25176, + "target":34962 + }, + { + "buffer":0, + "byteLength":288, + "byteOffset":25368, + "target":34962 + }, + { + "buffer":0, + "byteLength":288, + "byteOffset":25656, + "target":34962 + }, + { + "buffer":0, + "byteLength":192, + "byteOffset":25944, + "target":34962 + }, + { + "buffer":0, + "byteLength":288, + "byteOffset":26136, + "target":34962 + }, + { + "buffer":0, + "byteLength":288, + "byteOffset":26424, + "target":34962 + }, + { + "buffer":0, + "byteLength":192, + "byteOffset":26712, + "target":34962 + }, + { + "buffer":0, + "byteLength":216, + "byteOffset":26904, + "target":34962 + }, + { + "buffer":0, + "byteLength":216, + "byteOffset":27120, + "target":34962 + }, + { + "buffer":0, + "byteLength":144, + "byteOffset":27336, "target":34962 }, { "buffer":0, "byteLength":48, - "byteOffset":1784, + "byteOffset":27480, + "target":34963 + }, + { + "buffer":0, + "byteLength":216, + "byteOffset":27528, + "target":34962 + }, + { + "buffer":0, + "byteLength":216, + "byteOffset":27744, + "target":34962 + }, + { + "buffer":0, + "byteLength":144, + "byteOffset":27960, "target":34962 }, { "buffer":0, "byteLength":48, - "byteOffset":1832, + "byteOffset":28104, + "target":34963 + }, + { + "buffer":0, + "byteLength":216, + "byteOffset":28152, "target":34962 }, { "buffer":0, - "byteLength":32, - "byteOffset":1880, + "byteLength":216, + "byteOffset":28368, + "target":34962 + }, + { + "buffer":0, + "byteLength":144, + "byteOffset":28584, "target":34962 }, { "buffer":0, "byteLength":48, - "byteOffset":1912, + "byteOffset":28728, + "target":34963 + }, + { + "buffer":0, + "byteLength":2832, + "byteOffset":28776, "target":34962 }, { "buffer":0, - "byteLength":48, - "byteOffset":1960, + "byteLength":2832, + "byteOffset":31608, "target":34962 }, { "buffer":0, - "byteLength":32, - "byteOffset":2008, + "byteLength":1888, + "byteOffset":34440, "target":34962 }, { "buffer":0, - "byteLength":120, - "byteOffset":2040, + "byteLength":744, + "byteOffset":36328, + "target":34963 + }, + { + "buffer":0, + "byteLength":1932, + "byteOffset":37072, "target":34962 }, { "buffer":0, - "byteLength":120, - "byteOffset":2160, + "byteLength":1932, + "byteOffset":39004, "target":34962 }, { "buffer":0, - "byteLength":80, - "byteOffset":2280, + "byteLength":1288, + "byteOffset":40936, "target":34962 }, { "buffer":0, - "byteLength":48, - "byteOffset":2360, + "byteLength":504, + "byteOffset":42224, + "target":34963 + }, + { + "buffer":0, + "byteLength":1020, + "byteOffset":42728, "target":34962 }, { "buffer":0, - "byteLength":48, - "byteOffset":2408, + "byteLength":1020, + "byteOffset":43748, "target":34962 }, { "buffer":0, - "byteLength":32, - "byteOffset":2456, + "byteLength":680, + "byteOffset":44768, "target":34962 }, { "buffer":0, - "byteLength":48, - "byteOffset":2488, + "byteLength":264, + "byteOffset":45448, + "target":34963 + }, + { + "buffer":0, + "byteLength":288, + "byteOffset":45712, "target":34962 }, { "buffer":0, - "byteLength":48, - "byteOffset":2536, + "byteLength":288, + "byteOffset":46000, "target":34962 }, { "buffer":0, - "byteLength":32, - "byteOffset":2584, + "byteLength":192, + "byteOffset":46288, "target":34962 }, { "buffer":0, - "byteLength":120, - "byteOffset":2616, + "byteLength":288, + "byteOffset":46480, "target":34962 }, { "buffer":0, - "byteLength":120, - "byteOffset":2736, + "byteLength":288, + "byteOffset":46768, "target":34962 }, { "buffer":0, - "byteLength":80, - "byteOffset":2856, + "byteLength":192, + "byteOffset":47056, "target":34962 }, { "buffer":0, - "byteLength":48, - "byteOffset":2936, + "byteLength":288, + "byteOffset":47248, "target":34962 }, { "buffer":0, - "byteLength":48, - "byteOffset":2984, + "byteLength":288, + "byteOffset":47536, "target":34962 }, { "buffer":0, - "byteLength":32, - "byteOffset":3032, + "byteLength":192, + "byteOffset":47824, "target":34962 }, { "buffer":0, - "byteLength":48, - "byteOffset":3064, + "byteLength":288, + "byteOffset":48016, "target":34962 }, { "buffer":0, - "byteLength":48, - "byteOffset":3112, + "byteLength":288, + "byteOffset":48304, "target":34962 }, { "buffer":0, - "byteLength":32, - "byteOffset":3160, + "byteLength":192, + "byteOffset":48592, "target":34962 }, { "buffer":0, - "byteLength":120, - "byteOffset":3192, + "byteLength":288, + "byteOffset":48784, "target":34962 }, { "buffer":0, - "byteLength":120, - "byteOffset":3312, + "byteLength":288, + "byteOffset":49072, "target":34962 }, { "buffer":0, - "byteLength":80, - "byteOffset":3432, + "byteLength":192, + "byteOffset":49360, "target":34962 }, { "buffer":0, - "byteLength":48, - "byteOffset":3512, + "byteLength":288, + "byteOffset":49552, "target":34962 }, { "buffer":0, - "byteLength":48, - "byteOffset":3560, + "byteLength":288, + "byteOffset":49840, "target":34962 }, { "buffer":0, - "byteLength":32, - "byteOffset":3608, + "byteLength":192, + "byteOffset":50128, "target":34962 }, { "buffer":0, - "byteLength":48, - "byteOffset":3640, + "byteLength":288, + "byteOffset":50320, "target":34962 }, { "buffer":0, - "byteLength":48, - "byteOffset":3688, + "byteLength":288, + "byteOffset":50608, "target":34962 }, { "buffer":0, - "byteLength":32, - "byteOffset":3736, + "byteLength":192, + "byteOffset":50896, "target":34962 }, { "buffer":0, - "byteLength":120, - "byteOffset":3768, + "byteLength":288, + "byteOffset":51088, "target":34962 }, { "buffer":0, - "byteLength":120, - "byteOffset":3888, + "byteLength":288, + "byteOffset":51376, "target":34962 }, { "buffer":0, - "byteLength":80, - "byteOffset":4008, + "byteLength":192, + "byteOffset":51664, "target":34962 }, { "buffer":0, - "byteLength":48, - "byteOffset":4088, + "byteLength":288, + "byteOffset":51856, "target":34962 }, { "buffer":0, - "byteLength":48, - "byteOffset":4136, + "byteLength":288, + "byteOffset":52144, "target":34962 }, { "buffer":0, - "byteLength":32, - "byteOffset":4184, + "byteLength":192, + "byteOffset":52432, "target":34962 }, { "buffer":0, - "byteLength":48, - "byteOffset":4216, + "byteLength":288, + "byteOffset":52624, "target":34962 }, { "buffer":0, - "byteLength":48, - "byteOffset":4264, + "byteLength":288, + "byteOffset":52912, "target":34962 }, { "buffer":0, - "byteLength":32, - "byteOffset":4312, + "byteLength":192, + "byteOffset":53200, "target":34962 + }, + { + "buffer":0, + "byteLength":288, + "byteOffset":53392, + "target":34962 + }, + { + "buffer":0, + "byteLength":288, + "byteOffset":53680, + "target":34962 + }, + { + "buffer":0, + "byteLength":192, + "byteOffset":53968, + "target":34962 + }, + { + "buffer":0, + "byteLength":288, + "byteOffset":54160, + "target":34962 + }, + { + "buffer":0, + "byteLength":288, + "byteOffset":54448, + "target":34962 + }, + { + "buffer":0, + "byteLength":192, + "byteOffset":54736, + "target":34962 + }, + { + "buffer":0, + "byteLength":288, + "byteOffset":54928, + "target":34962 + }, + { + "buffer":0, + "byteLength":288, + "byteOffset":55216, + "target":34962 + }, + { + "buffer":0, + "byteLength":192, + "byteOffset":55504, + "target":34962 + }, + { + "buffer":0, + "byteLength":288, + "byteOffset":55696, + "target":34962 + }, + { + "buffer":0, + "byteLength":288, + "byteOffset":55984, + "target":34962 + }, + { + "buffer":0, + "byteLength":192, + "byteOffset":56272, + "target":34962 + }, + { + "buffer":0, + "byteLength":288, + "byteOffset":56464, + "target":34962 + }, + { + "buffer":0, + "byteLength":288, + "byteOffset":56752, + "target":34962 + }, + { + "buffer":0, + "byteLength":192, + "byteOffset":57040, + "target":34962 + }, + { + "buffer":0, + "byteLength":4584, + "byteOffset":57232, + "target":34962 + }, + { + "buffer":0, + "byteLength":4584, + "byteOffset":61816, + "target":34962 + }, + { + "buffer":0, + "byteLength":3056, + "byteOffset":66400, + "target":34962 + }, + { + "buffer":0, + "byteLength":1080, + "byteOffset":69456, + "target":34963 + }, + { + "buffer":0, + "byteLength":1368, + "byteOffset":70536, + "target":34962 + }, + { + "buffer":0, + "byteLength":1368, + "byteOffset":71904, + "target":34962 + }, + { + "buffer":0, + "byteLength":912, + "byteOffset":73272, + "target":34962 + }, + { + "buffer":0, + "byteLength":384, + "byteOffset":74184, + "target":34963 + }, + { + "buffer":0, + "byteLength":864, + "byteOffset":74568, + "target":34962 + }, + { + "buffer":0, + "byteLength":864, + "byteOffset":75432, + "target":34962 + }, + { + "buffer":0, + "byteLength":576, + "byteOffset":76296, + "target":34962 + }, + { + "buffer":0, + "byteLength":264, + "byteOffset":76872, + "target":34963 + }, + { + "buffer":0, + "byteLength":288, + "byteOffset":77136, + "target":34962 + }, + { + "buffer":0, + "byteLength":288, + "byteOffset":77424, + "target":34962 + }, + { + "buffer":0, + "byteLength":192, + "byteOffset":77712, + "target":34962 + }, + { + "buffer":0, + "byteLength":72, + "byteOffset":77904, + "target":34963 + }, + { + "buffer":0, + "byteLength":984, + "byteOffset":77976, + "target":34962 + }, + { + "buffer":0, + "byteLength":984, + "byteOffset":78960, + "target":34962 + }, + { + "buffer":0, + "byteLength":656, + "byteOffset":79944, + "target":34962 + }, + { + "buffer":0, + "byteLength":264, + "byteOffset":80600, + "target":34963 + }, + { + "buffer":0, + "byteLength":288, + "byteOffset":80864, + "target":34962 + }, + { + "buffer":0, + "byteLength":288, + "byteOffset":81152, + "target":34962 + }, + { + "buffer":0, + "byteLength":192, + "byteOffset":81440, + "target":34962 + }, + { + "buffer":0, + "byteLength":72, + "byteOffset":81632, + "target":34963 + }, + { + "buffer":0, + "byteLength":912, + "byteOffset":81704, + "target":34962 + }, + { + "buffer":0, + "byteLength":912, + "byteOffset":82616, + "target":34962 + }, + { + "buffer":0, + "byteLength":608, + "byteOffset":83528, + "target":34962 + }, + { + "buffer":0, + "byteLength":264, + "byteOffset":84136, + "target":34963 + }, + { + "buffer":0, + "byteLength":288, + "byteOffset":84400, + "target":34962 + }, + { + "buffer":0, + "byteLength":288, + "byteOffset":84688, + "target":34962 + }, + { + "buffer":0, + "byteLength":192, + "byteOffset":84976, + "target":34962 + }, + { + "buffer":0, + "byteLength":912, + "byteOffset":85168, + "target":34962 + }, + { + "buffer":0, + "byteLength":912, + "byteOffset":86080, + "target":34962 + }, + { + "buffer":0, + "byteLength":608, + "byteOffset":86992, + "target":34962 + }, + { + "buffer":0, + "byteLength":5520, + "byteOffset":87600, + "target":34962 + }, + { + "buffer":0, + "byteLength":5520, + "byteOffset":93120, + "target":34962 + }, + { + "buffer":0, + "byteLength":3680, + "byteOffset":98640, + "target":34962 + }, + { + "buffer":0, + "byteLength":2304, + "byteOffset":102320, + "target":34963 + }, + { + "buffer":0, + "byteLength":4080, + "byteOffset":104624, + "target":34962 + }, + { + "buffer":0, + "byteLength":4080, + "byteOffset":108704, + "target":34962 + }, + { + "buffer":0, + "byteLength":2720, + "byteOffset":112784, + "target":34962 + }, + { + "buffer":0, + "byteLength":1656, + "byteOffset":115504, + "target":34963 + }, + { + "buffer":0, + "byteLength":2640, + "byteOffset":117160, + "target":34962 + }, + { + "buffer":0, + "byteLength":2640, + "byteOffset":119800, + "target":34962 + }, + { + "buffer":0, + "byteLength":1760, + "byteOffset":122440, + "target":34962 + }, + { + "buffer":0, + "byteLength":1008, + "byteOffset":124200, + "target":34963 + }, + { + "buffer":0, + "byteLength":2892, + "byteOffset":125208, + "target":34962 + }, + { + "buffer":0, + "byteLength":2892, + "byteOffset":128100, + "target":34962 + }, + { + "buffer":0, + "byteLength":1928, + "byteOffset":130992, + "target":34962 + }, + { + "buffer":0, + "byteLength":864, + "byteOffset":132920, + "target":34963 + }, + { + "buffer":0, + "byteLength":1224, + "byteOffset":133784, + "target":34962 + }, + { + "buffer":0, + "byteLength":1224, + "byteOffset":135008, + "target":34962 + }, + { + "buffer":0, + "byteLength":816, + "byteOffset":136232, + "target":34962 + }, + { + "buffer":0, + "byteLength":336, + "byteOffset":137048, + "target":34963 + }, + { + "buffer":0, + "byteLength":288, + "byteOffset":137384, + "target":34962 + }, + { + "buffer":0, + "byteLength":288, + "byteOffset":137672, + "target":34962 + }, + { + "buffer":0, + "byteLength":192, + "byteOffset":137960, + "target":34962 + }, + { + "buffer":0, + "byteLength":2040, + "byteOffset":138152, + "target":34962 + }, + { + "buffer":0, + "byteLength":2040, + "byteOffset":140192, + "target":34962 + }, + { + "buffer":0, + "byteLength":1360, + "byteOffset":142232, + "target":34962 + }, + { + "buffer":0, + "byteLength":696, + "byteOffset":143592, + "target":34963 + }, + { + "buffer":0, + "byteLength":288, + "byteOffset":144288, + "target":34962 + }, + { + "buffer":0, + "byteLength":288, + "byteOffset":144576, + "target":34962 + }, + { + "buffer":0, + "byteLength":192, + "byteOffset":144864, + "target":34962 + }, + { + "buffer":0, + "byteLength":288, + "byteOffset":145056, + "target":34962 + }, + { + "buffer":0, + "byteLength":288, + "byteOffset":145344, + "target":34962 + }, + { + "buffer":0, + "byteLength":192, + "byteOffset":145632, + "target":34962 + }, + { + "buffer":0, + "byteLength":72, + "byteOffset":145824, + "target":34963 + }, + { + "buffer":0, + "byteLength":2040, + "byteOffset":145896, + "target":34962 + }, + { + "buffer":0, + "byteLength":2040, + "byteOffset":147936, + "target":34962 + }, + { + "buffer":0, + "byteLength":1360, + "byteOffset":149976, + "target":34962 + }, + { + "buffer":0, + "byteLength":864, + "byteOffset":151336, + "target":34962 + }, + { + "buffer":0, + "byteLength":864, + "byteOffset":152200, + "target":34962 + }, + { + "buffer":0, + "byteLength":576, + "byteOffset":153064, + "target":34962 + }, + { + "buffer":0, + "byteLength":264, + "byteOffset":153640, + "target":34963 + }, + { + "buffer":0, + "byteLength":2040, + "byteOffset":153904, + "target":34962 + }, + { + "buffer":0, + "byteLength":2040, + "byteOffset":155944, + "target":34962 + }, + { + "buffer":0, + "byteLength":1360, + "byteOffset":157984, + "target":34962 + }, + { + "buffer":0, + "byteLength":288, + "byteOffset":159344, + "target":34962 + }, + { + "buffer":0, + "byteLength":288, + "byteOffset":159632, + "target":34962 + }, + { + "buffer":0, + "byteLength":192, + "byteOffset":159920, + "target":34962 + }, + { + "buffer":0, + "byteLength":72, + "byteOffset":160112, + "target":34963 + }, + { + "buffer":0, + "byteLength":288, + "byteOffset":160184, + "target":34962 + }, + { + "buffer":0, + "byteLength":288, + "byteOffset":160472, + "target":34962 + }, + { + "buffer":0, + "byteLength":192, + "byteOffset":160760, + "target":34962 + }, + { + "buffer":0, + "byteLength":72, + "byteOffset":160952, + "target":34963 + }, + { + "buffer":0, + "byteLength":624, + "byteOffset":161024, + "target":34962 + }, + { + "buffer":0, + "byteLength":624, + "byteOffset":161648, + "target":34962 + }, + { + "buffer":0, + "byteLength":416, + "byteOffset":162272, + "target":34962 + }, + { + "buffer":0, + "byteLength":168, + "byteOffset":162688, + "target":34963 + }, + { + "buffer":0, + "byteLength":6072, + "byteOffset":162856, + "target":34962 + }, + { + "buffer":0, + "byteLength":6072, + "byteOffset":168928, + "target":34962 + }, + { + "buffer":0, + "byteLength":4048, + "byteOffset":175000, + "target":34962 + }, + { + "buffer":0, + "byteLength":2016, + "byteOffset":179048, + "target":34963 + }, + { + "buffer":0, + "byteLength":8544, + "byteOffset":181064, + "target":34962 + }, + { + "buffer":0, + "byteLength":8544, + "byteOffset":189608, + "target":34962 + }, + { + "buffer":0, + "byteLength":5696, + "byteOffset":198152, + "target":34962 + }, + { + "buffer":0, + "byteLength":2928, + "byteOffset":203848, + "target":34963 + }, + { + "buffer":0, + "byteLength":288, + "byteOffset":206776, + "target":34962 + }, + { + "buffer":0, + "byteLength":288, + "byteOffset":207064, + "target":34962 + }, + { + "buffer":0, + "byteLength":192, + "byteOffset":207352, + "target":34962 + }, + { + "buffer":0, + "byteLength":72, + "byteOffset":207544, + "target":34963 + }, + { + "buffer":0, + "byteLength":576, + "byteOffset":207616, + "target":34962 + }, + { + "buffer":0, + "byteLength":576, + "byteOffset":208192, + "target":34962 + }, + { + "buffer":0, + "byteLength":384, + "byteOffset":208768, + "target":34962 + }, + { + "buffer":0, + "byteLength":168, + "byteOffset":209152, + "target":34963 + }, + { + "buffer":0, + "byteLength":624, + "byteOffset":209320, + "target":34962 + }, + { + "buffer":0, + "byteLength":624, + "byteOffset":209944, + "target":34962 + }, + { + "buffer":0, + "byteLength":416, + "byteOffset":210568, + "target":34962 + }, + { + "buffer":0, + "byteLength":168, + "byteOffset":210984, + "target":34963 + }, + { + "buffer":0, + "byteLength":1224, + "byteOffset":211152, + "target":34962 + }, + { + "buffer":0, + "byteLength":1224, + "byteOffset":212376, + "target":34962 + }, + { + "buffer":0, + "byteLength":816, + "byteOffset":213600, + "target":34962 + }, + { + "buffer":0, + "byteLength":336, + "byteOffset":214416, + "target":34963 + }, + { + "buffer":0, + "byteLength":1128, + "byteOffset":214752, + "target":34962 + }, + { + "buffer":0, + "byteLength":1128, + "byteOffset":215880, + "target":34962 + }, + { + "buffer":0, + "byteLength":752, + "byteOffset":217008, + "target":34962 + }, + { + "buffer":0, + "byteLength":336, + "byteOffset":217760, + "target":34963 } ], "samplers":[ @@ -1311,7 +6611,7 @@ ], "buffers":[ { - "byteLength":4344, + "byteLength":218096, "uri":"test_map.bin" } ] diff --git a/build.rs b/build.rs new file mode 100644 index 0000000..6700d6f --- /dev/null +++ b/build.rs @@ -0,0 +1,10 @@ +extern crate embed_resource; +use std::env; + +fn main() { + let target = env::var("TARGET").unwrap(); + if target.contains("windows") { + // on windows we will set our game icon as icon for the executable + embed_resource::compile("build/windows/icon.rc"); + } +} diff --git a/build/android/res/mipmap-mdpi/icon.png b/build/android/res/mipmap-mdpi/icon.png new file mode 100644 index 0000000..63a5cd3 Binary files /dev/null and b/build/android/res/mipmap-mdpi/icon.png differ diff --git a/build/icon_1024x1024.png b/build/icon_1024x1024.png new file mode 100644 index 0000000..e1a7be5 Binary files /dev/null and b/build/icon_1024x1024.png differ diff --git a/build/macos/AppIcon.iconset/icon_128x128.png b/build/macos/AppIcon.iconset/icon_128x128.png new file mode 100644 index 0000000..a31ad87 Binary files /dev/null and b/build/macos/AppIcon.iconset/icon_128x128.png differ diff --git a/build/macos/AppIcon.iconset/icon_128x128@2x.png b/build/macos/AppIcon.iconset/icon_128x128@2x.png new file mode 100644 index 0000000..8c780b8 Binary files /dev/null and b/build/macos/AppIcon.iconset/icon_128x128@2x.png differ diff --git a/build/macos/AppIcon.iconset/icon_16x16.png b/build/macos/AppIcon.iconset/icon_16x16.png new file mode 100644 index 0000000..20e53e8 Binary files /dev/null and b/build/macos/AppIcon.iconset/icon_16x16.png differ diff --git a/build/macos/AppIcon.iconset/icon_16x16@2x.png b/build/macos/AppIcon.iconset/icon_16x16@2x.png new file mode 100644 index 0000000..c4f2b8f Binary files /dev/null and b/build/macos/AppIcon.iconset/icon_16x16@2x.png differ diff --git a/build/macos/AppIcon.iconset/icon_256x256.png b/build/macos/AppIcon.iconset/icon_256x256.png new file mode 100644 index 0000000..8c780b8 Binary files /dev/null and b/build/macos/AppIcon.iconset/icon_256x256.png differ diff --git a/build/macos/AppIcon.iconset/icon_256x256@2x.png b/build/macos/AppIcon.iconset/icon_256x256@2x.png new file mode 100644 index 0000000..a16a1aa Binary files /dev/null and b/build/macos/AppIcon.iconset/icon_256x256@2x.png differ diff --git a/build/macos/AppIcon.iconset/icon_32x32.png b/build/macos/AppIcon.iconset/icon_32x32.png new file mode 100644 index 0000000..c4f2b8f Binary files /dev/null and b/build/macos/AppIcon.iconset/icon_32x32.png differ diff --git a/build/macos/AppIcon.iconset/icon_32x32@2x.png b/build/macos/AppIcon.iconset/icon_32x32@2x.png new file mode 100644 index 0000000..250577f Binary files /dev/null and b/build/macos/AppIcon.iconset/icon_32x32@2x.png differ diff --git a/build/macos/AppIcon.iconset/icon_512x512.png b/build/macos/AppIcon.iconset/icon_512x512.png new file mode 100644 index 0000000..a16a1aa Binary files /dev/null and b/build/macos/AppIcon.iconset/icon_512x512.png differ diff --git a/build/macos/AppIcon.iconset/icon_512x512@2x.png b/build/macos/AppIcon.iconset/icon_512x512@2x.png new file mode 100644 index 0000000..e1a7be5 Binary files /dev/null and b/build/macos/AppIcon.iconset/icon_512x512@2x.png differ diff --git a/build/macos/create_icns.sh b/build/macos/create_icns.sh new file mode 100755 index 0000000..f71ed47 --- /dev/null +++ b/build/macos/create_icns.sh @@ -0,0 +1,17 @@ +#!/usr/bin/env sh + +rm -rf AppIcon.iconset/* +mkdir -p AppIcon.iconset +sips -z 16 16 ../icon_1024x1024.png --out AppIcon.iconset/icon_16x16.png +sips -z 32 32 ../icon_1024x1024.png --out AppIcon.iconset/icon_16x16@2x.png +sips -z 32 32 ../icon_1024x1024.png --out AppIcon.iconset/icon_32x32.png +sips -z 64 64 ../icon_1024x1024.png --out AppIcon.iconset/icon_32x32@2x.png +sips -z 128 128 ../icon_1024x1024.png --out AppIcon.iconset/icon_128x128.png +sips -z 256 256 ../icon_1024x1024.png --out AppIcon.iconset/icon_128x128@2x.png +sips -z 256 256 ../icon_1024x1024.png --out AppIcon.iconset/icon_256x256.png +sips -z 512 512 ../icon_1024x1024.png --out AppIcon.iconset/icon_256x256@2x.png +sips -z 512 512 ../icon_1024x1024.png --out AppIcon.iconset/icon_512x512.png +cp ../icon_1024x1024.png AppIcon.iconset/icon_512x512@2x.png +iconutil -c icns AppIcon.iconset +mkdir -p src/Game.app/Contents/Resources +mv AppIcon.icns src/Game.app/Contents/Resources/ diff --git a/build/macos/create_icns_linux.sh b/build/macos/create_icns_linux.sh new file mode 100755 index 0000000..d538ef0 --- /dev/null +++ b/build/macos/create_icns_linux.sh @@ -0,0 +1,17 @@ +#!/usr/bin/env sh + +rm -rf AppIcon.iconset/* +mkdir -p AppIcon.iconset +convert ../icon_1024x1024.png -resize 16x16 AppIcon.iconset/icon_16x16.png +convert ../icon_1024x1024.png -resize 32x32 AppIcon.iconset/icon_16x16@2x.png +convert ../icon_1024x1024.png -resize 32x32 AppIcon.iconset/icon_32x32.png +convert ../icon_1024x1024.png -resize 64x64 AppIcon.iconset/icon_32x32@2x.png +convert ../icon_1024x1024.png -resize 128x128 AppIcon.iconset/icon_128x128.png +convert ../icon_1024x1024.png -resize 256x256 AppIcon.iconset/icon_128x128@2x.png +convert ../icon_1024x1024.png -resize 256x256 AppIcon.iconset/icon_256x256.png +convert ../icon_1024x1024.png -resize 512x512 AppIcon.iconset/icon_256x256@2x.png +convert ../icon_1024x1024.png -resize 512x512 AppIcon.iconset/icon_512x512.png +cp ../icon_1024x1024.png AppIcon.iconset/icon_512x512@2x.png +png2icns ./AppIcon.icns AppIcon.iconset/icon_16x16.png AppIcon.iconset/icon_32x32.png AppIcon.iconset/icon_128x128.png AppIcon.iconset/icon_256x256.png AppIcon.iconset/icon_512x512.png +mkdir -p src/Game.app/Contents/Resources +mv AppIcon.icns src/Game.app/Contents/Resources/ diff --git a/build/web/sound.js b/build/web/sound.js new file mode 100644 index 0000000..b2ab677 --- /dev/null +++ b/build/web/sound.js @@ -0,0 +1,62 @@ +// Insert hack to make sound autoplay on Chrome as soon as the user interacts with the tab: +// https://developers.google.com/web/updates/2018/11/web-audio-autoplay#moving-forward + +// the following function keeps track of all AudioContexts and resumes them on the first user +// interaction with the page. If the function is called and all contexts are already running, +// it will remove itself from all event listeners. +(function () { + // An array of all contexts to resume on the page + const audioContextList = []; + + // An array of various user interaction events we should listen for + const userInputEventNames = [ + "click", + "contextmenu", + "auxclick", + "dblclick", + "mousedown", + "mouseup", + "pointerup", + "touchend", + "keydown", + "keyup", + ]; + + // A proxy object to intercept AudioContexts and + // add them to the array for tracking and resuming later + self.AudioContext = new Proxy(self.AudioContext, { + construct(target, args) { + const result = new target(...args); + audioContextList.push(result); + return result; + }, + }); + + // To resume all AudioContexts being tracked + function resumeAllContexts(_event) { + let count = 0; + + audioContextList.forEach((context) => { + if (context.state !== "running") { + context.resume(); + } else { + count++; + } + }); + + // If all the AudioContexts have now resumed then we unbind all + // the event listeners from the page to prevent unnecessary resume attempts + // Checking count > 0 ensures that the user interaction happens AFTER the game started up + if (count > 0 && count === audioContextList.length) { + userInputEventNames.forEach((eventName) => { + document.removeEventListener(eventName, resumeAllContexts); + }); + } + } + + // We bind the resume function for each user interaction + // event on the page + userInputEventNames.forEach((eventName) => { + document.addEventListener(eventName, resumeAllContexts); + }); +})(); diff --git a/build/web/styles.css b/build/web/styles.css new file mode 100644 index 0000000..b0a0359 --- /dev/null +++ b/build/web/styles.css @@ -0,0 +1,53 @@ +body, html { + height: 100%; +} + +body { + background-color: lightgray; + margin: 0; + display: flex; + justify-content: center; + align-items: center; +} + +.game-container { + width: 800px; + height: 600px; + display: flex; + justify-content: center; + align-items: center; +} + +.lds-dual-ring { + display: inline-block; + position: absolute; + left: 0; + right: 0; + margin: auto; + width: 80px; + height: 80px; +} + +.lds-dual-ring:after { + content: " "; + display: block; + width: 64px; + height: 64px; + border-radius: 50%; + border: 6px solid #fff; + border-color: #fff transparent #fff transparent; + animation: lds-dual-ring 1.2s linear infinite; +} + +@keyframes lds-dual-ring { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(360deg); + } +} + +#bevy { + z-index: 2; +} diff --git a/build/windows/icon.ico b/build/windows/icon.ico new file mode 100644 index 0000000..8c7afbf Binary files /dev/null and b/build/windows/icon.ico differ diff --git a/build/windows/icon.rc b/build/windows/icon.rc new file mode 100644 index 0000000..61c0aef --- /dev/null +++ b/build/windows/icon.rc @@ -0,0 +1 @@ +app_icon ICON "icon.ico" diff --git a/build/windows/installer/.gitignore b/build/windows/installer/.gitignore new file mode 100644 index 0000000..4ded7c4 --- /dev/null +++ b/build/windows/installer/.gitignore @@ -0,0 +1,2 @@ +/bin/ +/obj/ diff --git a/build/windows/installer/InstallDirUi.wxs b/build/windows/installer/InstallDirUi.wxs new file mode 100644 index 0000000..4815975 --- /dev/null +++ b/build/windows/installer/InstallDirUi.wxs @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/build/windows/installer/Installer.sln b/build/windows/installer/Installer.sln new file mode 100644 index 0000000..a79b034 --- /dev/null +++ b/build/windows/installer/Installer.sln @@ -0,0 +1,40 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.0.31903.59 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{B7DD6F7E-DEF8-4E67-B5B7-07EF123DB6F0}") = "Installer", "Installer.wixproj", "{340293B0-F46C-46A0-88D8-4BB2F3465C53}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|ARM64 = Debug|ARM64 + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|ARM64 = Release|ARM64 + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {340293B0-F46C-46A0-88D8-4BB2F3465C53}.Debug|Any CPU.ActiveCfg = Debug|x64 + {340293B0-F46C-46A0-88D8-4BB2F3465C53}.Debug|Any CPU.Build.0 = Debug|x64 + {340293B0-F46C-46A0-88D8-4BB2F3465C53}.Debug|ARM64.ActiveCfg = Debug|ARM64 + {340293B0-F46C-46A0-88D8-4BB2F3465C53}.Debug|ARM64.Build.0 = Debug|ARM64 + {340293B0-F46C-46A0-88D8-4BB2F3465C53}.Debug|x64.ActiveCfg = Debug|x64 + {340293B0-F46C-46A0-88D8-4BB2F3465C53}.Debug|x64.Build.0 = Debug|x64 + {340293B0-F46C-46A0-88D8-4BB2F3465C53}.Debug|x86.ActiveCfg = Debug|x86 + {340293B0-F46C-46A0-88D8-4BB2F3465C53}.Debug|x86.Build.0 = Debug|x86 + {340293B0-F46C-46A0-88D8-4BB2F3465C53}.Release|Any CPU.ActiveCfg = Release|x64 + {340293B0-F46C-46A0-88D8-4BB2F3465C53}.Release|Any CPU.Build.0 = Release|x64 + {340293B0-F46C-46A0-88D8-4BB2F3465C53}.Release|ARM64.ActiveCfg = Release|ARM64 + {340293B0-F46C-46A0-88D8-4BB2F3465C53}.Release|ARM64.Build.0 = Release|ARM64 + {340293B0-F46C-46A0-88D8-4BB2F3465C53}.Release|x64.ActiveCfg = Release|x64 + {340293B0-F46C-46A0-88D8-4BB2F3465C53}.Release|x64.Build.0 = Release|x64 + {340293B0-F46C-46A0-88D8-4BB2F3465C53}.Release|x86.ActiveCfg = Release|x86 + {340293B0-F46C-46A0-88D8-4BB2F3465C53}.Release|x86.Build.0 = Release|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/build/windows/installer/Installer.wixproj b/build/windows/installer/Installer.wixproj new file mode 100644 index 0000000..4c3ca90 --- /dev/null +++ b/build/windows/installer/Installer.wixproj @@ -0,0 +1,29 @@ + + + + none + installer + + + + + + + + + AssetsDirectory + INSTALLFOLDER + false + + + + + + + CreditsDirectory + INSTALLFOLDER + false + + + + diff --git a/build/windows/installer/Package.en-us.wxl b/build/windows/installer/Package.en-us.wxl new file mode 100644 index 0000000..83e657b --- /dev/null +++ b/build/windows/installer/Package.en-us.wxl @@ -0,0 +1,6 @@ + + + + diff --git a/build/windows/installer/Package.wxs b/build/windows/installer/Package.wxs new file mode 100644 index 0000000..4960c88 --- /dev/null +++ b/build/windows/installer/Package.wxs @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/build/windows/installer/global.json b/build/windows/installer/global.json new file mode 100644 index 0000000..9f70a2c --- /dev/null +++ b/build/windows/installer/global.json @@ -0,0 +1,6 @@ +{ + "sdk": { + "version": "7.0.102", + "rollForward": "latestFeature" + } +} diff --git a/credits/CREDITS.md b/credits/CREDITS.md new file mode 100644 index 0000000..9c46c68 --- /dev/null +++ b/credits/CREDITS.md @@ -0,0 +1,5 @@ +# Credits + +## Assets + +* Bevy icon: [MIT License](licenses/Bevy_MIT_License.md); diff --git a/credits/licenses/Bevy_MIT_License.md b/credits/licenses/Bevy_MIT_License.md new file mode 100644 index 0000000..9cf1062 --- /dev/null +++ b/credits/licenses/Bevy_MIT_License.md @@ -0,0 +1,19 @@ +MIT License + +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/index.html b/index.html new file mode 100644 index 0000000..e8d5faf --- /dev/null +++ b/index.html @@ -0,0 +1,22 @@ + + + + + + TTT:CE + + + + + + + + +
+
+ + Javascript and support for canvas is required + +
+ + diff --git a/mobile/.cargo/config.toml b/mobile/.cargo/config.toml new file mode 100644 index 0000000..19a6340 --- /dev/null +++ b/mobile/.cargo/config.toml @@ -0,0 +1,5 @@ +# Flag to notify the compiler we're building for the iOS simulator from an Apple silicon mac +# This needs some workarounds for now +# See https://github.com/bevyengine/bevy/pull/10178 - remove if it's not needed anymore. +[target.aarch64-apple-ios-sim] +rustflags = ["--cfg=ios_simulator"] diff --git a/mobile/.gitignore b/mobile/.gitignore new file mode 100644 index 0000000..b446ed7 --- /dev/null +++ b/mobile/.gitignore @@ -0,0 +1,3 @@ +mobile.xcodeproj/xcuserdata/ +mobile.xcodeproj/project.xcworkspace/ +build/ diff --git a/mobile/Cargo.toml b/mobile/Cargo.toml new file mode 100644 index 0000000..504c51f --- /dev/null +++ b/mobile/Cargo.toml @@ -0,0 +1,34 @@ +[package] +name = "mobile" +version = "0.1.0" +edition = "2021" +publish = false + +[lib] +name = "mobile" +crate-type = ["staticlib", "cdylib"] + +[dependencies] +ttt-ce = { path = ".." } # ToDo +bevy = { version = "0.13", default-features = false } + +# As long as Kira doesn't expose a feature for this, we need to enable it +# See https://github.com/tesselode/kira/pull/51 +[target."cfg(target_os = \"android\")".dependencies.cpal] +version = "0.15" +features = ["oboe-shared-stdcxx"] + +[package.metadata.android] +package = "me.nikl.bevygame" # ToDo +apk_name = "BevyGame" # ToDo same as GAME_OSX_APP_NAME in release workflow +assets = "../assets" +strip = "strip" +resources = "../build/android/res" +build_targets = ["aarch64-linux-android"] + +[package.metadata.android.sdk] +target_sdk_version = 33 + +[package.metadata.android.application] +icon = "@mipmap/icon" +label = "Bevy Game" # ToDo diff --git a/mobile/Makefile b/mobile/Makefile new file mode 100644 index 0000000..4fb6908 --- /dev/null +++ b/mobile/Makefile @@ -0,0 +1,29 @@ +.PHONY: xcodebuild run install boot-sim generate clean + +DEVICE = ${DEVICE_ID} +ifndef DEVICE_ID + DEVICE=$(shell xcrun simctl list devices 'iOS' | grep -v 'unavailable' | grep -v '^--' | grep -v '==' | head -n 1 | grep -E -o -i "([0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12})") +endif + +run: install + # Todo: change the bundle identifier (then remove this comment :P) + xcrun simctl launch --console $(DEVICE) me.nikl.bevygame + +boot-sim: + xcrun simctl boot $(DEVICE) || true + +install: xcodebuild-simulator boot-sim + xcrun simctl install $(DEVICE) build/Build/Products/Debug-iphonesimulator/mobile.app + +xcodebuild-simulator: + IOS_TARGETS=x86_64-apple-ios xcodebuild -scheme mobile -configuration Debug -derivedDataPath build -destination "id=$(DEVICE)" + +xcodebuild-iphone: + IOS_TARGETS=aarch64-apple-ios xcodebuild -scheme mobile -configuration Debug -derivedDataPath build -arch arm64 + +xcodebuild-iphone-release: + IOS_TARGETS=aarch64-apple-ios xcodebuild -scheme mobile -configuration Release -derivedDataPath build -arch arm64 + +clean: + rm -r build + cargo clean diff --git a/mobile/build_rust_deps.sh b/mobile/build_rust_deps.sh new file mode 100644 index 0000000..af8e0a7 --- /dev/null +++ b/mobile/build_rust_deps.sh @@ -0,0 +1,55 @@ +#!/usr/bin/env bash + +# based on https://github.com/mozilla/glean/blob/main/build-scripts/xc-universal-binary.sh + +set -eux + +PATH=$PATH:$HOME/.cargo/bin + +RELFLAG= +if [[ "$CONFIGURATION" != "Debug" ]]; then + RELFLAG="--profile dist" +fi + +set -euvx + +if [[ -n "${DEVELOPER_SDK_DIR:-}" ]]; then + # Assume we're in Xcode, which means we're probably cross-compiling. + # In this case, we need to add an extra library search path for build scripts and proc-macros, + # which run on the host instead of the target. + # (macOS Big Sur does not have linkable libraries in /usr/lib/.) + export LIBRARY_PATH="${DEVELOPER_SDK_DIR}/MacOSX.sdk/usr/lib:${LIBRARY_PATH:-}" +fi + +# add homebrew bin path, as it's the most commonly used package manager on macOS +# this is needed for cmake on apple arm processors as it's not available by default +export PATH="$PATH:/opt/homebrew/bin" + +IS_SIMULATOR=0 +if [ "${LLVM_TARGET_TRIPLE_SUFFIX-}" = "-simulator" ]; then + IS_SIMULATOR=1 +fi + +for arch in $ARCHS; do + case "$arch" in + x86_64) + if [ $IS_SIMULATOR -eq 0 ]; then + echo "Building for x86_64, but not a simulator build. What's going on?" >&2 + exit 2 + fi + + # Intel iOS simulator + export CFLAGS_x86_64_apple_ios="-target x86_64-apple-ios" + cargo rustc --crate-type staticlib --lib $RELFLAG --target x86_64-apple-ios + ;; + + arm64) + if [ $IS_SIMULATOR -eq 0 ]; then + # Hardware iOS targets + cargo rustc --crate-type staticlib --lib $RELFLAG --target aarch64-apple-ios + else + # M1 iOS simulator -- currently in Nightly only and requires to build `libstd` + cargo rustc --crate-type staticlib --lib $RELFLAG --target aarch64-apple-ios-sim + fi + esac +done diff --git a/mobile/ios-src/Assets.xcassets/AppIcon.appiconset/Contents.json b/mobile/ios-src/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..5a60908 --- /dev/null +++ b/mobile/ios-src/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,14 @@ +{ + "images" : [ + { + "filename" : "icon_1024x1024.png", + "idiom" : "universal", + "platform" : "ios", + "size" : "1024x1024" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/mobile/ios-src/Assets.xcassets/AppIcon.appiconset/icon_1024x1024.png b/mobile/ios-src/Assets.xcassets/AppIcon.appiconset/icon_1024x1024.png new file mode 100644 index 0000000..a79c37d Binary files /dev/null and b/mobile/ios-src/Assets.xcassets/AppIcon.appiconset/icon_1024x1024.png differ diff --git a/mobile/ios-src/Assets.xcassets/Contents.json b/mobile/ios-src/Assets.xcassets/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/mobile/ios-src/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/mobile/ios-src/Info.plist b/mobile/ios-src/Info.plist new file mode 100644 index 0000000..f815a6b --- /dev/null +++ b/mobile/ios-src/Info.plist @@ -0,0 +1,35 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + 0.1.1 + CFBundleIconName + AppIcon + CFBundleVersion + 0.1.1 + UILaunchStoryboardName + LaunchScreen + UIRequiresFullScreen + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + UIInterfaceOrientationPortraitUpsideDown + + + diff --git a/mobile/ios-src/LaunchScreen.storyboard b/mobile/ios-src/LaunchScreen.storyboard new file mode 100644 index 0000000..324de1d --- /dev/null +++ b/mobile/ios-src/LaunchScreen.storyboard @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mobile/ios-src/bindings.h b/mobile/ios-src/bindings.h new file mode 100644 index 0000000..a705f03 --- /dev/null +++ b/mobile/ios-src/bindings.h @@ -0,0 +1 @@ +void main_rs(void); diff --git a/mobile/ios-src/main.m b/mobile/ios-src/main.m new file mode 100644 index 0000000..7d152fb --- /dev/null +++ b/mobile/ios-src/main.m @@ -0,0 +1,6 @@ +#import "bindings.h" + +int main() { + main_rs(); + return 0; +} diff --git a/mobile/manifest.yaml b/mobile/manifest.yaml new file mode 100644 index 0000000..af084cc --- /dev/null +++ b/mobile/manifest.yaml @@ -0,0 +1,11 @@ +android: + gradle: true + # this assets configuration is currently only used without gradle! + #assets: + # - "../assets/*" + icon: "ios-src/Assets.xcassets/AppIcon.appiconset/icon_1024x1024.png" + manifest: + package: "com.opencodebox.tttce" # Todo + version_code: 3 # Todo you should start at 1 + application: + label: "Trouble in Terror Town: Community Edition" # Todo diff --git a/mobile/mobile.xcodeproj/project.pbxproj b/mobile/mobile.xcodeproj/project.pbxproj new file mode 100644 index 0000000..69c019c --- /dev/null +++ b/mobile/mobile.xcodeproj/project.pbxproj @@ -0,0 +1,465 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 51; + objects = { + +/* Begin PBXBuildFile section */ + 134866208A035F8615C99114 /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 96A1E5B62F48B379829E8A0D /* Metal.framework */; }; + 2469A4292A6F9AC200ACF4EF /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 2469A4282A6F9AC200ACF4EF /* Assets.xcassets */; }; + 2469A42B2A6FAC7000ACF4EF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 2469A42A2A6FAC7000ACF4EF /* LaunchScreen.storyboard */; }; + 2604C99FAB5A8322EDCABB9F /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FE71FBCAA714DB4F42459106 /* UIKit.framework */; }; + 442540D056ADB9AE61A0A590 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9F1B41978FA53999AA836D0F /* Security.framework */; }; + 55892F1396056740E1AF9685 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = AF7DE91055EBD05ED77E57F9 /* main.m */; }; + 55B7188F81C3C4183F81D3AE /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = A39528EB2CCB182F5328223A /* libc++.tbd */; }; + 57CD6306253C7A940098CD4A /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 57CD6305253C7A940098CD4A /* AudioToolbox.framework */; }; + 57CD630E253C80EC0098CD4A /* assets in Resources */ = {isa = PBXBuildFile; fileRef = 57CD630A253C7F5F0098CD4A /* assets */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 26BF2C4863C966DABAB40DC8 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 8DBF1E2B5C613DA41701F6D9 /* Project object */; + proxyType = 1; + remoteGlobalIDString = D08AEBE0B1A9C9A7B8C7B33F; + remoteInfo = cargo_ios; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 160DB77300A3F1806F024D47 /* bindings.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = bindings.h; sourceTree = ""; }; + 2469A4282A6F9AC200ACF4EF /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "ios-src/Assets.xcassets"; sourceTree = SOURCE_ROOT; }; + 2469A42A2A6FAC7000ACF4EF /* LaunchScreen.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = ios-src/LaunchScreen.storyboard; sourceTree = ""; }; + 55EAC02897847195D2F44C15 /* mobile.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = mobile.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 57CD6305253C7A940098CD4A /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; + 57CD630A253C7F5F0098CD4A /* assets */ = {isa = PBXFileReference; lastKnownFileType = folder; name = assets; path = ../../assets; sourceTree = ""; }; + 8EE7F1E3B0303533925D7E33 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; + 96A1E5B62F48B379829E8A0D /* Metal.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Metal.framework; path = System/Library/Frameworks/Metal.framework; sourceTree = SDKROOT; }; + 9F1B41978FA53999AA836D0F /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; }; + A39528EB2CCB182F5328223A /* libc++.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = "libc++.tbd"; path = "usr/lib/libc++.tbd"; sourceTree = SDKROOT; }; + AF7DE91055EBD05ED77E57F9 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + FE71FBCAA714DB4F42459106 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + D5A822CB2D6847BA8800BE4C /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 442540D056ADB9AE61A0A590 /* Security.framework in Frameworks */, + 134866208A035F8615C99114 /* Metal.framework in Frameworks */, + 2604C99FAB5A8322EDCABB9F /* UIKit.framework in Frameworks */, + 55B7188F81C3C4183F81D3AE /* libc++.tbd in Frameworks */, + 57CD6306253C7A940098CD4A /* AudioToolbox.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 321F7D6A765B38E746C35105 /* Products */ = { + isa = PBXGroup; + children = ( + 55EAC02897847195D2F44C15 /* mobile.app */, + ); + name = Products; + sourceTree = ""; + }; + 4F1D6F28B8A5D1927AB0ADED /* ios-src */ = { + isa = PBXGroup; + children = ( + 2469A4282A6F9AC200ACF4EF /* Assets.xcassets */, + 57CD630A253C7F5F0098CD4A /* assets */, + 160DB77300A3F1806F024D47 /* bindings.h */, + 8EE7F1E3B0303533925D7E33 /* Info.plist */, + AF7DE91055EBD05ED77E57F9 /* main.m */, + ); + path = "ios-src"; + sourceTree = ""; + }; + 8F2E3E6040EAD2EC9F3FA530 = { + isa = PBXGroup; + children = ( + 2469A42A2A6FAC7000ACF4EF /* LaunchScreen.storyboard */, + 4F1D6F28B8A5D1927AB0ADED /* ios-src */, + EB028409C2D0655412DA6E44 /* Frameworks */, + 321F7D6A765B38E746C35105 /* Products */, + ); + sourceTree = ""; + }; + EB028409C2D0655412DA6E44 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 57CD6305253C7A940098CD4A /* AudioToolbox.framework */, + A39528EB2CCB182F5328223A /* libc++.tbd */, + 96A1E5B62F48B379829E8A0D /* Metal.framework */, + 9F1B41978FA53999AA836D0F /* Security.framework */, + FE71FBCAA714DB4F42459106 /* UIKit.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXLegacyTarget section */ + D08AEBE0B1A9C9A7B8C7B33F /* cargo_ios */ = { + isa = PBXLegacyTarget; + buildArgumentsString = build_rust_deps.sh; + buildConfigurationList = AA00A0CFDB11F37F2BA3FC2E /* Build configuration list for PBXLegacyTarget "cargo_ios" */; + buildPhases = ( + FE045B3D04D57B713A565FF8 /* Sources */, + ); + buildToolPath = /bin/sh; + buildWorkingDirectory = .; + dependencies = ( + ); + name = cargo_ios; + passBuildSettingsInEnvironment = 1; + productName = cargo_ios; + }; +/* End PBXLegacyTarget section */ + +/* Begin PBXNativeTarget section */ + 3BDB8152E4962373181B4FE5 /* mobile */ = { + isa = PBXNativeTarget; + buildConfigurationList = E714A1AEAAE517C348B5BD27 /* Build configuration list for PBXNativeTarget "mobile" */; + buildPhases = ( + 9F13800790AD9DBC2BC0F116 /* Sources */, + D5A822CB2D6847BA8800BE4C /* Frameworks */, + 57CD630D253C80E60098CD4A /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 19D4B9C22ADC6705B5132B4C /* PBXTargetDependency */, + ); + name = mobile; + productName = mobile; + productReference = 55EAC02897847195D2F44C15 /* mobile.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 8DBF1E2B5C613DA41701F6D9 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 1240; + }; + buildConfigurationList = 9D43D41707A5C30B227B83F9 /* Build configuration list for PBXProject "mobile" */; + compatibilityVersion = "Xcode 10.0"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = 8F2E3E6040EAD2EC9F3FA530; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 3BDB8152E4962373181B4FE5 /* mobile */, + D08AEBE0B1A9C9A7B8C7B33F /* cargo_ios */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 57CD630D253C80E60098CD4A /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 2469A42B2A6FAC7000ACF4EF /* LaunchScreen.storyboard in Resources */, + 2469A4292A6F9AC200ACF4EF /* Assets.xcassets in Resources */, + 57CD630E253C80EC0098CD4A /* assets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 9F13800790AD9DBC2BC0F116 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 55892F1396056740E1AF9685 /* main.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FE045B3D04D57B713A565FF8 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 19D4B9C22ADC6705B5132B4C /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = D08AEBE0B1A9C9A7B8C7B33F /* cargo_ios */; + targetProxy = 26BF2C4863C966DABAB40DC8 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 4AD7BC6FDD56FF18FA6DA7D7 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = ""; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "$(inherited)", + "DEBUG=1", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + }; + name = Debug; + }; + 5B14EC4ADC81FBF1F8CF20E9 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_CXX_LANGUAGE_STANDARD = "c++11"; + CLANG_CXX_LIBRARY = "libc++"; + CODE_SIGN_IDENTITY = ""; + DEVELOPMENT_TEAM = ""; + ENABLE_BITCODE = NO; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "ios-src/", + ); + INFOPLIST_FILE = "ios-src/Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + "LIBRARY_SEARCH_PATHS[sdk=iphoneos*][arch=arm64]" = ( + "$(inherited)", + "../target/aarch64-apple-ios/dist", + ); + "LIBRARY_SEARCH_PATHS[sdk=iphonesimulator*][arch=arm64]" = ( + "$(inherited)", + "../target/aarch64-apple-ios-sim/dist", + ); + "LIBRARY_SEARCH_PATHS[sdk=iphonesimulator*][arch=x86_64]" = ( + "$(inherited)", + "../target/x86_64-apple-ios/dist", + ); + OTHER_LDFLAGS = ( + "$(inherited)", + "-lmobile", + "-lc++abi", + ); + PRODUCT_BUNDLE_IDENTIFIER /* Todo */ = com.opencodebox.tttce; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; + 79E3C28F06346EA58420A93D /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = ""; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_VERSION = 5.0; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 8265913A25816D964A847F1B /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = "com.rust.cargo-ios"; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + A2D5B73DD30D562B6F366526 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_CXX_LANGUAGE_STANDARD = "c++11"; + CLANG_CXX_LIBRARY = "libc++"; + CODE_SIGN_IDENTITY = ""; + DEVELOPMENT_TEAM = ""; + ENABLE_BITCODE = NO; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "ios-src/", + ); + INFOPLIST_FILE = "ios-src/Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + "LIBRARY_SEARCH_PATHS[sdk=iphoneos*][arch=arm64]" = ( + "$(inherited)", + "../target/aarch64-apple-ios/debug", + ); + "LIBRARY_SEARCH_PATHS[sdk=iphonesimulator*][arch=arm64]" = ( + "$(inherited)", + "../target/aarch64-apple-ios-sim/debug", + ); + "LIBRARY_SEARCH_PATHS[sdk=iphonesimulator*][arch=x86_64]" = ( + "$(inherited)", + "../target/x86_64-apple-ios/debug", + ); + OTHER_LDFLAGS = ( + "$(inherited)", + "-lmobile", + "-lc++abi", + ); + PRODUCT_BUNDLE_IDENTIFIER /* Todo */ = com.opencodebox.tttce; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + FEA9B18D9236F9F6DC6DF799 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = "com.rust.cargo-ios"; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 9D43D41707A5C30B227B83F9 /* Build configuration list for PBXProject "mobile" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 4AD7BC6FDD56FF18FA6DA7D7 /* Debug */, + 79E3C28F06346EA58420A93D /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + AA00A0CFDB11F37F2BA3FC2E /* Build configuration list for PBXLegacyTarget "cargo_ios" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 8265913A25816D964A847F1B /* Debug */, + FEA9B18D9236F9F6DC6DF799 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; + E714A1AEAAE517C348B5BD27 /* Build configuration list for PBXNativeTarget "mobile" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A2D5B73DD30D562B6F366526 /* Debug */, + 5B14EC4ADC81FBF1F8CF20E9 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Debug; + }; +/* End XCConfigurationList section */ + }; + rootObject = 8DBF1E2B5C613DA41701F6D9 /* Project object */; +} diff --git a/mobile/mobile.xcodeproj/xcshareddata/xcschemes/mobile.xcscheme b/mobile/mobile.xcodeproj/xcshareddata/xcschemes/mobile.xcscheme new file mode 100644 index 0000000..495aaf6 --- /dev/null +++ b/mobile/mobile.xcodeproj/xcshareddata/xcschemes/mobile.xcscheme @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mobile/src/lib.rs b/mobile/src/lib.rs new file mode 100644 index 0000000..13c5f56 --- /dev/null +++ b/mobile/src/lib.rs @@ -0,0 +1,20 @@ +use bevy::prelude::*; +use bevy::window::WindowMode; +use ttt-ce::GamePlugin; // ToDo: Replace ttt-ce with your new crate name. + +#[bevy_main] +fn main() { + App::new() + .add_plugins(( + DefaultPlugins.set(WindowPlugin { + primary_window: Some(Window { + resizable: false, + mode: WindowMode::BorderlessFullscreen, + ..default() + }), + ..default() + }), + GamePlugin, + )) + .run() +} diff --git a/raw-assets/Ciathyza-Gridbox_Prototype_Materials/credits.txt b/raw-assets/Ciathyza-Gridbox_Prototype_Materials/credits.txt new file mode 100644 index 0000000..4f57aca --- /dev/null +++ b/raw-assets/Ciathyza-Gridbox_Prototype_Materials/credits.txt @@ -0,0 +1,4 @@ +taken from Unity Assetstore https://assetstore.unity.com/packages/2d/textures-materials/gridbox-prototype-materials-129127 +creator: Ciathyza +website: https://www.ciathyza.com/ +license: https://unity.com/legal/as-terms diff --git a/raw-assets/Ciathyza-Gridbox_Prototype_Materials/prototype_512x512_blue1.png b/raw-assets/Ciathyza-Gridbox_Prototype_Materials/prototype_512x512_blue1.png new file mode 100644 index 0000000..e93e044 Binary files /dev/null and b/raw-assets/Ciathyza-Gridbox_Prototype_Materials/prototype_512x512_blue1.png differ diff --git a/raw-assets/Ciathyza-Gridbox_Prototype_Materials/prototype_512x512_blue2.png b/raw-assets/Ciathyza-Gridbox_Prototype_Materials/prototype_512x512_blue2.png new file mode 100644 index 0000000..398c702 Binary files /dev/null and b/raw-assets/Ciathyza-Gridbox_Prototype_Materials/prototype_512x512_blue2.png differ diff --git a/raw-assets/Ciathyza-Gridbox_Prototype_Materials/prototype_512x512_blue3.png b/raw-assets/Ciathyza-Gridbox_Prototype_Materials/prototype_512x512_blue3.png new file mode 100644 index 0000000..8a10ef1 Binary files /dev/null and b/raw-assets/Ciathyza-Gridbox_Prototype_Materials/prototype_512x512_blue3.png differ diff --git a/raw-assets/Ciathyza-Gridbox_Prototype_Materials/prototype_512x512_brown.png b/raw-assets/Ciathyza-Gridbox_Prototype_Materials/prototype_512x512_brown.png new file mode 100644 index 0000000..faa1582 Binary files /dev/null and b/raw-assets/Ciathyza-Gridbox_Prototype_Materials/prototype_512x512_brown.png differ diff --git a/raw-assets/Ciathyza-Gridbox_Prototype_Materials/prototype_512x512_cyan.png b/raw-assets/Ciathyza-Gridbox_Prototype_Materials/prototype_512x512_cyan.png new file mode 100644 index 0000000..f46f202 Binary files /dev/null and b/raw-assets/Ciathyza-Gridbox_Prototype_Materials/prototype_512x512_cyan.png differ diff --git a/raw-assets/Ciathyza-Gridbox_Prototype_Materials/prototype_512x512_green1.png b/raw-assets/Ciathyza-Gridbox_Prototype_Materials/prototype_512x512_green1.png new file mode 100644 index 0000000..f83f216 Binary files /dev/null and b/raw-assets/Ciathyza-Gridbox_Prototype_Materials/prototype_512x512_green1.png differ diff --git a/raw-assets/Ciathyza-Gridbox_Prototype_Materials/prototype_512x512_green2.png b/raw-assets/Ciathyza-Gridbox_Prototype_Materials/prototype_512x512_green2.png new file mode 100644 index 0000000..ec4f1fe Binary files /dev/null and b/raw-assets/Ciathyza-Gridbox_Prototype_Materials/prototype_512x512_green2.png differ diff --git a/raw-assets/Ciathyza-Gridbox_Prototype_Materials/prototype_512x512_green3.png b/raw-assets/Ciathyza-Gridbox_Prototype_Materials/prototype_512x512_green3.png new file mode 100644 index 0000000..39534b6 Binary files /dev/null and b/raw-assets/Ciathyza-Gridbox_Prototype_Materials/prototype_512x512_green3.png differ diff --git a/raw-assets/Ciathyza-Gridbox_Prototype_Materials/prototype_512x512_grey1.png b/raw-assets/Ciathyza-Gridbox_Prototype_Materials/prototype_512x512_grey1.png new file mode 100644 index 0000000..dd06d3c Binary files /dev/null and b/raw-assets/Ciathyza-Gridbox_Prototype_Materials/prototype_512x512_grey1.png differ diff --git a/raw-assets/Ciathyza-Gridbox_Prototype_Materials/prototype_512x512_grey2.png b/raw-assets/Ciathyza-Gridbox_Prototype_Materials/prototype_512x512_grey2.png new file mode 100644 index 0000000..c9e380a Binary files /dev/null and b/raw-assets/Ciathyza-Gridbox_Prototype_Materials/prototype_512x512_grey2.png differ diff --git a/raw-assets/Ciathyza-Gridbox_Prototype_Materials/prototype_512x512_grey3.png b/raw-assets/Ciathyza-Gridbox_Prototype_Materials/prototype_512x512_grey3.png new file mode 100644 index 0000000..cceee74 Binary files /dev/null and b/raw-assets/Ciathyza-Gridbox_Prototype_Materials/prototype_512x512_grey3.png differ diff --git a/raw-assets/Ciathyza-Gridbox_Prototype_Materials/prototype_512x512_grey4.png b/raw-assets/Ciathyza-Gridbox_Prototype_Materials/prototype_512x512_grey4.png new file mode 100644 index 0000000..61a15ae Binary files /dev/null and b/raw-assets/Ciathyza-Gridbox_Prototype_Materials/prototype_512x512_grey4.png differ diff --git a/raw-assets/Ciathyza-Gridbox_Prototype_Materials/prototype_512x512_magenta.png b/raw-assets/Ciathyza-Gridbox_Prototype_Materials/prototype_512x512_magenta.png new file mode 100644 index 0000000..65ab1ce Binary files /dev/null and b/raw-assets/Ciathyza-Gridbox_Prototype_Materials/prototype_512x512_magenta.png differ diff --git a/raw-assets/Ciathyza-Gridbox_Prototype_Materials/prototype_512x512_normal.png b/raw-assets/Ciathyza-Gridbox_Prototype_Materials/prototype_512x512_normal.png new file mode 100644 index 0000000..4558d70 Binary files /dev/null and b/raw-assets/Ciathyza-Gridbox_Prototype_Materials/prototype_512x512_normal.png differ diff --git a/raw-assets/Ciathyza-Gridbox_Prototype_Materials/prototype_512x512_olive.png b/raw-assets/Ciathyza-Gridbox_Prototype_Materials/prototype_512x512_olive.png new file mode 100644 index 0000000..bdf476c Binary files /dev/null and b/raw-assets/Ciathyza-Gridbox_Prototype_Materials/prototype_512x512_olive.png differ diff --git a/raw-assets/Ciathyza-Gridbox_Prototype_Materials/prototype_512x512_orange.png b/raw-assets/Ciathyza-Gridbox_Prototype_Materials/prototype_512x512_orange.png new file mode 100644 index 0000000..6ae0986 Binary files /dev/null and b/raw-assets/Ciathyza-Gridbox_Prototype_Materials/prototype_512x512_orange.png differ diff --git a/raw-assets/Ciathyza-Gridbox_Prototype_Materials/prototype_512x512_pink.png b/raw-assets/Ciathyza-Gridbox_Prototype_Materials/prototype_512x512_pink.png new file mode 100644 index 0000000..8733887 Binary files /dev/null and b/raw-assets/Ciathyza-Gridbox_Prototype_Materials/prototype_512x512_pink.png differ diff --git a/raw-assets/Ciathyza-Gridbox_Prototype_Materials/prototype_512x512_purple.png b/raw-assets/Ciathyza-Gridbox_Prototype_Materials/prototype_512x512_purple.png new file mode 100644 index 0000000..13b7182 Binary files /dev/null and b/raw-assets/Ciathyza-Gridbox_Prototype_Materials/prototype_512x512_purple.png differ diff --git a/raw-assets/Ciathyza-Gridbox_Prototype_Materials/prototype_512x512_red.png b/raw-assets/Ciathyza-Gridbox_Prototype_Materials/prototype_512x512_red.png new file mode 100644 index 0000000..9e4a710 Binary files /dev/null and b/raw-assets/Ciathyza-Gridbox_Prototype_Materials/prototype_512x512_red.png differ diff --git a/raw-assets/Ciathyza-Gridbox_Prototype_Materials/prototype_512x512_white.png b/raw-assets/Ciathyza-Gridbox_Prototype_Materials/prototype_512x512_white.png new file mode 100644 index 0000000..2c3ad6b Binary files /dev/null and b/raw-assets/Ciathyza-Gridbox_Prototype_Materials/prototype_512x512_white.png differ diff --git a/raw-assets/Ciathyza-Gridbox_Prototype_Materials/prototype_512x512_yellow.png b/raw-assets/Ciathyza-Gridbox_Prototype_Materials/prototype_512x512_yellow.png new file mode 100644 index 0000000..c52d70b Binary files /dev/null and b/raw-assets/Ciathyza-Gridbox_Prototype_Materials/prototype_512x512_yellow.png differ diff --git a/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Bridges/PTK_Bridge_Large.fbx b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Bridges/PTK_Bridge_Large.fbx new file mode 100644 index 0000000..8eb3f31 Binary files /dev/null and b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Bridges/PTK_Bridge_Large.fbx differ diff --git a/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Bridges/PTK_Bridge_Medium.fbx b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Bridges/PTK_Bridge_Medium.fbx new file mode 100644 index 0000000..e06760f Binary files /dev/null and b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Bridges/PTK_Bridge_Medium.fbx differ diff --git a/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Bridges/PTK_Bridge_Small.fbx b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Bridges/PTK_Bridge_Small.fbx new file mode 100644 index 0000000..32bc052 Binary files /dev/null and b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Bridges/PTK_Bridge_Small.fbx differ diff --git a/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Collectables/PTK_Collectable_1.fbx b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Collectables/PTK_Collectable_1.fbx new file mode 100644 index 0000000..7039818 Binary files /dev/null and b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Collectables/PTK_Collectable_1.fbx differ diff --git a/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Collectables/PTK_Collectable_2.fbx b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Collectables/PTK_Collectable_2.fbx new file mode 100644 index 0000000..745c32d Binary files /dev/null and b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Collectables/PTK_Collectable_2.fbx differ diff --git a/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Columns/PTK_Column_Edge_Large.fbx b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Columns/PTK_Column_Edge_Large.fbx new file mode 100644 index 0000000..569856b Binary files /dev/null and b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Columns/PTK_Column_Edge_Large.fbx differ diff --git a/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Columns/PTK_Column_Edge_Medium.fbx b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Columns/PTK_Column_Edge_Medium.fbx new file mode 100644 index 0000000..5d3d6f9 Binary files /dev/null and b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Columns/PTK_Column_Edge_Medium.fbx differ diff --git a/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Columns/PTK_Column_Edge_Small.fbx b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Columns/PTK_Column_Edge_Small.fbx new file mode 100644 index 0000000..63f4032 Binary files /dev/null and b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Columns/PTK_Column_Edge_Small.fbx differ diff --git a/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Columns/PTK_Column_Large.fbx b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Columns/PTK_Column_Large.fbx new file mode 100644 index 0000000..cede9c9 Binary files /dev/null and b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Columns/PTK_Column_Large.fbx differ diff --git a/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Columns/PTK_Column_Medium.fbx b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Columns/PTK_Column_Medium.fbx new file mode 100644 index 0000000..6882371 Binary files /dev/null and b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Columns/PTK_Column_Medium.fbx differ diff --git a/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Columns/PTK_Column_Small.fbx b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Columns/PTK_Column_Small.fbx new file mode 100644 index 0000000..f4909b9 Binary files /dev/null and b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Columns/PTK_Column_Small.fbx differ diff --git a/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Containers/PTK_Chest.fbx b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Containers/PTK_Chest.fbx new file mode 100644 index 0000000..d6a33b4 Binary files /dev/null and b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Containers/PTK_Chest.fbx differ diff --git a/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Containers/PTK_Pool.fbx b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Containers/PTK_Pool.fbx new file mode 100644 index 0000000..5db54d8 Binary files /dev/null and b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Containers/PTK_Pool.fbx differ diff --git a/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Cubes/PTK_Cube_1.fbx b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Cubes/PTK_Cube_1.fbx new file mode 100644 index 0000000..437d835 Binary files /dev/null and b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Cubes/PTK_Cube_1.fbx differ diff --git a/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Cubes/PTK_Cube_2.fbx b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Cubes/PTK_Cube_2.fbx new file mode 100644 index 0000000..109acb6 Binary files /dev/null and b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Cubes/PTK_Cube_2.fbx differ diff --git a/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Cuboids/PTK_Cuboid_1.fbx b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Cuboids/PTK_Cuboid_1.fbx new file mode 100644 index 0000000..8682b90 Binary files /dev/null and b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Cuboids/PTK_Cuboid_1.fbx differ diff --git a/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Cuboids/PTK_Cuboid_2.fbx b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Cuboids/PTK_Cuboid_2.fbx new file mode 100644 index 0000000..a229ee9 Binary files /dev/null and b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Cuboids/PTK_Cuboid_2.fbx differ diff --git a/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Cuboids/PTK_Cuboid_3.fbx b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Cuboids/PTK_Cuboid_3.fbx new file mode 100644 index 0000000..0f7b033 Binary files /dev/null and b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Cuboids/PTK_Cuboid_3.fbx differ diff --git a/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Cuboids/PTK_Cuboid_4.fbx b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Cuboids/PTK_Cuboid_4.fbx new file mode 100644 index 0000000..8a4f76f Binary files /dev/null and b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Cuboids/PTK_Cuboid_4.fbx differ diff --git a/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Cuboids/PTK_Cuboid_5.fbx b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Cuboids/PTK_Cuboid_5.fbx new file mode 100644 index 0000000..67eda46 Binary files /dev/null and b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Cuboids/PTK_Cuboid_5.fbx differ diff --git a/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Doors/PTK_Door_Medium.fbx b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Doors/PTK_Door_Medium.fbx new file mode 100644 index 0000000..439f682 Binary files /dev/null and b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Doors/PTK_Door_Medium.fbx differ diff --git a/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Doors/PTK_Door_Medium_2.fbx b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Doors/PTK_Door_Medium_2.fbx new file mode 100644 index 0000000..d1dec2d Binary files /dev/null and b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Doors/PTK_Door_Medium_2.fbx differ diff --git a/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Doors/PTK_DoubleDoor_Medium.fbx b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Doors/PTK_DoubleDoor_Medium.fbx new file mode 100644 index 0000000..6035b3d Binary files /dev/null and b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Doors/PTK_DoubleDoor_Medium.fbx differ diff --git a/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Doors/PTK_RevolvingDoor_Medium.fbx b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Doors/PTK_RevolvingDoor_Medium.fbx new file mode 100644 index 0000000..7e390f8 Binary files /dev/null and b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Doors/PTK_RevolvingDoor_Medium.fbx differ diff --git a/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Doors/PTK_SlidingDoor_Large.fbx b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Doors/PTK_SlidingDoor_Large.fbx new file mode 100644 index 0000000..edae3ff Binary files /dev/null and b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Doors/PTK_SlidingDoor_Large.fbx differ diff --git a/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Doors/PTK_SlidingDoor_Medium.fbx b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Doors/PTK_SlidingDoor_Medium.fbx new file mode 100644 index 0000000..42ae659 Binary files /dev/null and b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Doors/PTK_SlidingDoor_Medium.fbx differ diff --git a/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Doors/PTK_Tunnel_Large.fbx b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Doors/PTK_Tunnel_Large.fbx new file mode 100644 index 0000000..26ab4de Binary files /dev/null and b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Doors/PTK_Tunnel_Large.fbx differ diff --git a/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Doors/PTK_Tunnel_Medium.fbx b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Doors/PTK_Tunnel_Medium.fbx new file mode 100644 index 0000000..761b658 Binary files /dev/null and b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Doors/PTK_Tunnel_Medium.fbx differ diff --git a/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Doors/PTK_Tunnel_Small.fbx b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Doors/PTK_Tunnel_Small.fbx new file mode 100644 index 0000000..9c15ac9 Binary files /dev/null and b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Doors/PTK_Tunnel_Small.fbx differ diff --git a/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Elevators/PTK_Elevator.fbx b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Elevators/PTK_Elevator.fbx new file mode 100644 index 0000000..4696c32 Binary files /dev/null and b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Elevators/PTK_Elevator.fbx differ diff --git a/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Elevators/PTK_ElevatorFrame.fbx b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Elevators/PTK_ElevatorFrame.fbx new file mode 100644 index 0000000..862ef4a Binary files /dev/null and b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Elevators/PTK_ElevatorFrame.fbx differ diff --git a/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Elevators/PTK_Elevator_2Floors.fbx b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Elevators/PTK_Elevator_2Floors.fbx new file mode 100644 index 0000000..d0461e7 Binary files /dev/null and b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Elevators/PTK_Elevator_2Floors.fbx differ diff --git a/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Elevators/PTK_Elevator_3Floors.fbx b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Elevators/PTK_Elevator_3Floors.fbx new file mode 100644 index 0000000..52fd232 Binary files /dev/null and b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Elevators/PTK_Elevator_3Floors.fbx differ diff --git a/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Ladders/PTK_Ladder_Large.fbx b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Ladders/PTK_Ladder_Large.fbx new file mode 100644 index 0000000..23fa69f Binary files /dev/null and b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Ladders/PTK_Ladder_Large.fbx differ diff --git a/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Ladders/PTK_Ladder_Medium.fbx b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Ladders/PTK_Ladder_Medium.fbx new file mode 100644 index 0000000..26492c6 Binary files /dev/null and b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Ladders/PTK_Ladder_Medium.fbx differ diff --git a/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Ladders/PTK_Ladder_Small.fbx b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Ladders/PTK_Ladder_Small.fbx new file mode 100644 index 0000000..acedd75 Binary files /dev/null and b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Ladders/PTK_Ladder_Small.fbx differ diff --git a/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Lamps/PTK_Lamp.fbx b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Lamps/PTK_Lamp.fbx new file mode 100644 index 0000000..42cf475 Binary files /dev/null and b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Lamps/PTK_Lamp.fbx differ diff --git a/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/PointsOfInterest/PTK_ActionField.fbx b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/PointsOfInterest/PTK_ActionField.fbx new file mode 100644 index 0000000..85e444b Binary files /dev/null and b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/PointsOfInterest/PTK_ActionField.fbx differ diff --git a/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/PointsOfInterest/PTK_Exclamation.fbx b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/PointsOfInterest/PTK_Exclamation.fbx new file mode 100644 index 0000000..4e5c580 Binary files /dev/null and b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/PointsOfInterest/PTK_Exclamation.fbx differ diff --git a/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Ramps/PTK_Ramp_Large.fbx b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Ramps/PTK_Ramp_Large.fbx new file mode 100644 index 0000000..8243147 Binary files /dev/null and b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Ramps/PTK_Ramp_Large.fbx differ diff --git a/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Ramps/PTK_Ramp_Medium.fbx b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Ramps/PTK_Ramp_Medium.fbx new file mode 100644 index 0000000..cf6f74c Binary files /dev/null and b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Ramps/PTK_Ramp_Medium.fbx differ diff --git a/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Ramps/PTK_Ramp_Small.fbx b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Ramps/PTK_Ramp_Small.fbx new file mode 100644 index 0000000..430eaba Binary files /dev/null and b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Ramps/PTK_Ramp_Small.fbx differ diff --git a/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Stairs/PTK_Stairs_Large.fbx b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Stairs/PTK_Stairs_Large.fbx new file mode 100644 index 0000000..c246897 Binary files /dev/null and b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Stairs/PTK_Stairs_Large.fbx differ diff --git a/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Stairs/PTK_Stairs_Medium.fbx b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Stairs/PTK_Stairs_Medium.fbx new file mode 100644 index 0000000..be98e4a Binary files /dev/null and b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Stairs/PTK_Stairs_Medium.fbx differ diff --git a/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Stairs/PTK_Stairs_Small.fbx b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Stairs/PTK_Stairs_Small.fbx new file mode 100644 index 0000000..c03a9d0 Binary files /dev/null and b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Stairs/PTK_Stairs_Small.fbx differ diff --git a/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Walls/PTK_Wall_Large_1.fbx b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Walls/PTK_Wall_Large_1.fbx new file mode 100644 index 0000000..320e70e Binary files /dev/null and b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Walls/PTK_Wall_Large_1.fbx differ diff --git a/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Walls/PTK_Wall_Large_2.fbx b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Walls/PTK_Wall_Large_2.fbx new file mode 100644 index 0000000..24ad725 Binary files /dev/null and b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Walls/PTK_Wall_Large_2.fbx differ diff --git a/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Walls/PTK_Wall_Large_3.fbx b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Walls/PTK_Wall_Large_3.fbx new file mode 100644 index 0000000..bc49c53 Binary files /dev/null and b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Walls/PTK_Wall_Large_3.fbx differ diff --git a/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Walls/PTK_Wall_Large_4.fbx b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Walls/PTK_Wall_Large_4.fbx new file mode 100644 index 0000000..98161e5 Binary files /dev/null and b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Walls/PTK_Wall_Large_4.fbx differ diff --git a/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Walls/PTK_Wall_Large_5.fbx b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Walls/PTK_Wall_Large_5.fbx new file mode 100644 index 0000000..600c312 Binary files /dev/null and b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Walls/PTK_Wall_Large_5.fbx differ diff --git a/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Walls/PTK_Wall_Medium_1.fbx b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Walls/PTK_Wall_Medium_1.fbx new file mode 100644 index 0000000..0b4ae85 Binary files /dev/null and b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Walls/PTK_Wall_Medium_1.fbx differ diff --git a/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Walls/PTK_Wall_Medium_2.fbx b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Walls/PTK_Wall_Medium_2.fbx new file mode 100644 index 0000000..7536476 Binary files /dev/null and b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Walls/PTK_Wall_Medium_2.fbx differ diff --git a/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Walls/PTK_Wall_Medium_3.fbx b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Walls/PTK_Wall_Medium_3.fbx new file mode 100644 index 0000000..745ee17 Binary files /dev/null and b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Walls/PTK_Wall_Medium_3.fbx differ diff --git a/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Walls/PTK_Wall_Medium_4.fbx b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Walls/PTK_Wall_Medium_4.fbx new file mode 100644 index 0000000..505e583 Binary files /dev/null and b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Walls/PTK_Wall_Medium_4.fbx differ diff --git a/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Walls/PTK_Wall_Medium_5.fbx b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Walls/PTK_Wall_Medium_5.fbx new file mode 100644 index 0000000..135a046 Binary files /dev/null and b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Walls/PTK_Wall_Medium_5.fbx differ diff --git a/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Walls/PTK_Wall_Small_1.fbx b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Walls/PTK_Wall_Small_1.fbx new file mode 100644 index 0000000..38f3484 Binary files /dev/null and b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Walls/PTK_Wall_Small_1.fbx differ diff --git a/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Walls/PTK_Wall_Small_2.fbx b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Walls/PTK_Wall_Small_2.fbx new file mode 100644 index 0000000..69562bd Binary files /dev/null and b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Walls/PTK_Wall_Small_2.fbx differ diff --git a/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Walls/PTK_Wall_Small_3.fbx b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Walls/PTK_Wall_Small_3.fbx new file mode 100644 index 0000000..911fbdf Binary files /dev/null and b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Walls/PTK_Wall_Small_3.fbx differ diff --git a/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Walls/PTK_Wall_Small_4.fbx b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Walls/PTK_Wall_Small_4.fbx new file mode 100644 index 0000000..d68d2f0 Binary files /dev/null and b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Walls/PTK_Wall_Small_4.fbx differ diff --git a/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Walls/PTK_Wall_Small_5.fbx b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Walls/PTK_Wall_Small_5.fbx new file mode 100644 index 0000000..7a6ae69 Binary files /dev/null and b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Meshes/Walls/PTK_Wall_Small_5.fbx differ diff --git a/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Textures/Proto_1024.png b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Textures/Proto_1024.png new file mode 100644 index 0000000..abadc8e Binary files /dev/null and b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Textures/Proto_1024.png differ diff --git a/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Textures/Proto_2_1024.png b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Textures/Proto_2_1024.png new file mode 100644 index 0000000..7af582a Binary files /dev/null and b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Textures/Proto_2_1024.png differ diff --git a/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Textures/Proto_2_512.png b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Textures/Proto_2_512.png new file mode 100644 index 0000000..fdec2cd Binary files /dev/null and b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Textures/Proto_2_512.png differ diff --git a/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Textures/Proto_512.png b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Textures/Proto_512.png new file mode 100644 index 0000000..f65b9ae Binary files /dev/null and b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Textures/Proto_512.png differ diff --git a/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Textures/Proto_grid.png b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Textures/Proto_grid.png new file mode 100644 index 0000000..1c4347b Binary files /dev/null and b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Textures/Proto_grid.png differ diff --git a/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Textures/proto_1.png b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Textures/proto_1.png new file mode 100644 index 0000000..695a733 Binary files /dev/null and b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Textures/proto_1.png differ diff --git a/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Textures/proto_2.png b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Textures/proto_2.png new file mode 100644 index 0000000..83c3a2d Binary files /dev/null and b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Textures/proto_2.png differ diff --git a/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Textures/proto_3.png b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Textures/proto_3.png new file mode 100644 index 0000000..4c08f66 Binary files /dev/null and b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Textures/proto_3.png differ diff --git a/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Textures/proto_interaction.png b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Textures/proto_interaction.png new file mode 100644 index 0000000..9d42f50 Binary files /dev/null and b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Textures/proto_interaction.png differ diff --git a/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Textures/proto_interaction2.png b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Textures/proto_interaction2.png new file mode 100644 index 0000000..ea24a9b Binary files /dev/null and b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Textures/proto_interaction2.png differ diff --git a/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Textures/proto_interaction3.png b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Textures/proto_interaction3.png new file mode 100644 index 0000000..eaacb21 Binary files /dev/null and b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Textures/proto_interaction3.png differ diff --git a/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Textures/proto_interaction4.png b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Textures/proto_interaction4.png new file mode 100644 index 0000000..2a786b8 Binary files /dev/null and b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/Textures/proto_interaction4.png differ diff --git a/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/credits.txt b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/credits.txt new file mode 100644 index 0000000..8109185 --- /dev/null +++ b/raw-assets/DigitalKonstrukt-Prototyping_Pack_Free/credits.txt @@ -0,0 +1,4 @@ +taken from Unity Assetstore: https://assetstore.unity.com/packages/3d/prototyping-pack-free-94277 +creator: DigitalKonstrukt +website: https://www.digitalkonstrukt.com/ +license: https://unity.com/legal/as-terms diff --git a/raw-assets/GibGames-DevTextures/Collide_Camera.png b/raw-assets/GibGames-DevTextures/Collide_Camera.png new file mode 100644 index 0000000..5dfb624 Binary files /dev/null and b/raw-assets/GibGames-DevTextures/Collide_Camera.png differ diff --git a/raw-assets/GibGames-DevTextures/Collide_Handler.png b/raw-assets/GibGames-DevTextures/Collide_Handler.png new file mode 100644 index 0000000..90815b9 Binary files /dev/null and b/raw-assets/GibGames-DevTextures/Collide_Handler.png differ diff --git a/raw-assets/GibGames-DevTextures/Collide_Player.png b/raw-assets/GibGames-DevTextures/Collide_Player.png new file mode 100644 index 0000000..fcc4440 Binary files /dev/null and b/raw-assets/GibGames-DevTextures/Collide_Player.png differ diff --git a/raw-assets/GibGames-DevTextures/Collide_Scene.png b/raw-assets/GibGames-DevTextures/Collide_Scene.png new file mode 100644 index 0000000..0729ca9 Binary files /dev/null and b/raw-assets/GibGames-DevTextures/Collide_Scene.png differ diff --git a/raw-assets/GibGames-DevTextures/Collide_Script.png b/raw-assets/GibGames-DevTextures/Collide_Script.png new file mode 100644 index 0000000..ed91cf0 Binary files /dev/null and b/raw-assets/GibGames-DevTextures/Collide_Script.png differ diff --git a/raw-assets/GibGames-DevTextures/Collide_Trigger.png b/raw-assets/GibGames-DevTextures/Collide_Trigger.png new file mode 100644 index 0000000..2514490 Binary files /dev/null and b/raw-assets/GibGames-DevTextures/Collide_Trigger.png differ diff --git a/raw-assets/GibGames-DevTextures/Collide_World.png b/raw-assets/GibGames-DevTextures/Collide_World.png new file mode 100644 index 0000000..451c9c2 Binary files /dev/null and b/raw-assets/GibGames-DevTextures/Collide_World.png differ diff --git a/raw-assets/GibGames-DevTextures/Prefab_Black.png b/raw-assets/GibGames-DevTextures/Prefab_Black.png new file mode 100644 index 0000000..8962d70 Binary files /dev/null and b/raw-assets/GibGames-DevTextures/Prefab_Black.png differ diff --git a/raw-assets/GibGames-DevTextures/Prefab_Grey25.png b/raw-assets/GibGames-DevTextures/Prefab_Grey25.png new file mode 100644 index 0000000..0b7f5b8 Binary files /dev/null and b/raw-assets/GibGames-DevTextures/Prefab_Grey25.png differ diff --git a/raw-assets/GibGames-DevTextures/Prefab_Grey50.png b/raw-assets/GibGames-DevTextures/Prefab_Grey50.png new file mode 100644 index 0000000..33f25fe Binary files /dev/null and b/raw-assets/GibGames-DevTextures/Prefab_Grey50.png differ diff --git a/raw-assets/GibGames-DevTextures/Prefab_Grey75.png b/raw-assets/GibGames-DevTextures/Prefab_Grey75.png new file mode 100644 index 0000000..a945b0c Binary files /dev/null and b/raw-assets/GibGames-DevTextures/Prefab_Grey75.png differ diff --git a/raw-assets/GibGames-DevTextures/Prefab_Metal_100.png b/raw-assets/GibGames-DevTextures/Prefab_Metal_100.png new file mode 100644 index 0000000..4d61ac1 Binary files /dev/null and b/raw-assets/GibGames-DevTextures/Prefab_Metal_100.png differ diff --git a/raw-assets/GibGames-DevTextures/Prefab_Ref_a.png b/raw-assets/GibGames-DevTextures/Prefab_Ref_a.png new file mode 100644 index 0000000..faf672d Binary files /dev/null and b/raw-assets/GibGames-DevTextures/Prefab_Ref_a.png differ diff --git a/raw-assets/GibGames-DevTextures/Prefab_Ref_m.png b/raw-assets/GibGames-DevTextures/Prefab_Ref_m.png new file mode 100644 index 0000000..f0f40f3 Binary files /dev/null and b/raw-assets/GibGames-DevTextures/Prefab_Ref_m.png differ diff --git a/raw-assets/GibGames-DevTextures/Prefab_Ref_m7.png b/raw-assets/GibGames-DevTextures/Prefab_Ref_m7.png new file mode 100644 index 0000000..88a71dd Binary files /dev/null and b/raw-assets/GibGames-DevTextures/Prefab_Ref_m7.png differ diff --git a/raw-assets/GibGames-DevTextures/Prefab_Ref_m8.png b/raw-assets/GibGames-DevTextures/Prefab_Ref_m8.png new file mode 100644 index 0000000..5e7e22d Binary files /dev/null and b/raw-assets/GibGames-DevTextures/Prefab_Ref_m8.png differ diff --git a/raw-assets/GibGames-DevTextures/Prefab_Ref_m9.png b/raw-assets/GibGames-DevTextures/Prefab_Ref_m9.png new file mode 100644 index 0000000..9e86999 Binary files /dev/null and b/raw-assets/GibGames-DevTextures/Prefab_Ref_m9.png differ diff --git a/raw-assets/GibGames-DevTextures/Prefab_White.png b/raw-assets/GibGames-DevTextures/Prefab_White.png new file mode 100644 index 0000000..5fddb09 Binary files /dev/null and b/raw-assets/GibGames-DevTextures/Prefab_White.png differ diff --git a/raw-assets/GibGames-DevTextures/Prefab_blue.png b/raw-assets/GibGames-DevTextures/Prefab_blue.png new file mode 100644 index 0000000..b486036 Binary files /dev/null and b/raw-assets/GibGames-DevTextures/Prefab_blue.png differ diff --git a/raw-assets/GibGames-DevTextures/Prefab_green.png b/raw-assets/GibGames-DevTextures/Prefab_green.png new file mode 100644 index 0000000..9dffb99 Binary files /dev/null and b/raw-assets/GibGames-DevTextures/Prefab_green.png differ diff --git a/raw-assets/GibGames-DevTextures/Prefab_grey.png b/raw-assets/GibGames-DevTextures/Prefab_grey.png new file mode 100644 index 0000000..9e02fdd Binary files /dev/null and b/raw-assets/GibGames-DevTextures/Prefab_grey.png differ diff --git a/raw-assets/GibGames-DevTextures/Prefab_orange.png b/raw-assets/GibGames-DevTextures/Prefab_orange.png new file mode 100644 index 0000000..c65270c Binary files /dev/null and b/raw-assets/GibGames-DevTextures/Prefab_orange.png differ diff --git a/raw-assets/GibGames-DevTextures/Prefab_purple.png b/raw-assets/GibGames-DevTextures/Prefab_purple.png new file mode 100644 index 0000000..e6ef83d Binary files /dev/null and b/raw-assets/GibGames-DevTextures/Prefab_purple.png differ diff --git a/raw-assets/GibGames-DevTextures/Prefab_red.png b/raw-assets/GibGames-DevTextures/Prefab_red.png new file mode 100644 index 0000000..6d659a1 Binary files /dev/null and b/raw-assets/GibGames-DevTextures/Prefab_red.png differ diff --git a/raw-assets/GibGames-DevTextures/Prefab_tan.png b/raw-assets/GibGames-DevTextures/Prefab_tan.png new file mode 100644 index 0000000..67849eb Binary files /dev/null and b/raw-assets/GibGames-DevTextures/Prefab_tan.png differ diff --git a/raw-assets/GibGames-DevTextures/Prefab_yellow.png b/raw-assets/GibGames-DevTextures/Prefab_yellow.png new file mode 100644 index 0000000..e6bcf03 Binary files /dev/null and b/raw-assets/GibGames-DevTextures/Prefab_yellow.png differ diff --git a/raw-assets/GibGames-DevTextures/Small_Audio.png b/raw-assets/GibGames-DevTextures/Small_Audio.png new file mode 100644 index 0000000..cf11eab Binary files /dev/null and b/raw-assets/GibGames-DevTextures/Small_Audio.png differ diff --git a/raw-assets/GibGames-DevTextures/Small_Listener.png b/raw-assets/GibGames-DevTextures/Small_Listener.png new file mode 100644 index 0000000..b4d07b8 Binary files /dev/null and b/raw-assets/GibGames-DevTextures/Small_Listener.png differ diff --git a/raw-assets/GibGames-DevTextures/Small_Look.png b/raw-assets/GibGames-DevTextures/Small_Look.png new file mode 100644 index 0000000..b73d481 Binary files /dev/null and b/raw-assets/GibGames-DevTextures/Small_Look.png differ diff --git a/raw-assets/GibGames-DevTextures/Small_Target.png b/raw-assets/GibGames-DevTextures/Small_Target.png new file mode 100644 index 0000000..c89095b Binary files /dev/null and b/raw-assets/GibGames-DevTextures/Small_Target.png differ diff --git a/raw-assets/GibGames-DevTextures/Small_way.png b/raw-assets/GibGames-DevTextures/Small_way.png new file mode 100644 index 0000000..bd737f5 Binary files /dev/null and b/raw-assets/GibGames-DevTextures/Small_way.png differ diff --git a/raw-assets/GibGames-DevTextures/Solid_NoRender.png b/raw-assets/GibGames-DevTextures/Solid_NoRender.png new file mode 100644 index 0000000..313101f Binary files /dev/null and b/raw-assets/GibGames-DevTextures/Solid_NoRender.png differ diff --git a/raw-assets/GibGames-DevTextures/Solid_Region.png b/raw-assets/GibGames-DevTextures/Solid_Region.png new file mode 100644 index 0000000..5219609 Binary files /dev/null and b/raw-assets/GibGames-DevTextures/Solid_Region.png differ diff --git a/raw-assets/GibGames-DevTextures/Solid_SkyBox.png b/raw-assets/GibGames-DevTextures/Solid_SkyBox.png new file mode 100644 index 0000000..71f7684 Binary files /dev/null and b/raw-assets/GibGames-DevTextures/Solid_SkyBox.png differ diff --git a/raw-assets/GibGames-DevTextures/Zone_Hurt.png b/raw-assets/GibGames-DevTextures/Zone_Hurt.png new file mode 100644 index 0000000..0d97e8c Binary files /dev/null and b/raw-assets/GibGames-DevTextures/Zone_Hurt.png differ diff --git a/raw-assets/GibGames-DevTextures/Zone_spawn.png b/raw-assets/GibGames-DevTextures/Zone_spawn.png new file mode 100644 index 0000000..25d1cc5 Binary files /dev/null and b/raw-assets/GibGames-DevTextures/Zone_spawn.png differ diff --git a/raw-assets/GibGames-DevTextures/links.txt b/raw-assets/GibGames-DevTextures/links.txt new file mode 100644 index 0000000..1adff9b --- /dev/null +++ b/raw-assets/GibGames-DevTextures/links.txt @@ -0,0 +1,4 @@ +taken from Unity Assetstore: https://assetstore.unity.com/packages/2d/textures-materials/devtex-prototyping-textures-176107 +creator: GIB Games +website: https://gib.games/ +license: https://unity.com/legal/as-terms diff --git a/raw-assets/kenney_prototype-textures/Kenney.url b/raw-assets/kenney_prototype-textures/Kenney.url new file mode 100644 index 0000000..c220c41 --- /dev/null +++ b/raw-assets/kenney_prototype-textures/Kenney.url @@ -0,0 +1,2 @@ +[InternetShortcut] +URL=http://www.kenney.nl/ \ No newline at end of file diff --git a/raw-assets/kenney_prototype-textures/License.txt b/raw-assets/kenney_prototype-textures/License.txt new file mode 100644 index 0000000..bda3f93 --- /dev/null +++ b/raw-assets/kenney_prototype-textures/License.txt @@ -0,0 +1,23 @@ + + + Prototype Textures 1.0 + + Created/distributed by Kenney (www.kenney.nl) + Creation date: 08-04-2020 + + ------------------------------ + + License: (Creative Commons Zero, CC0) + http://creativecommons.org/publicdomain/zero/1.0/ + + This content is free to use in personal, educational and commercial projects. + Support us by crediting Kenney or www.kenney.nl (this is not mandatory) + + ------------------------------ + + Donate: http://support.kenney.nl + Request: http://request.kenney.nl + Patreon: http://patreon.com/kenney/ + + Follow on Twitter for updates: + http://twitter.com/KenneyNL \ No newline at end of file diff --git a/raw-assets/kenney_prototype-textures/PNG/Dark/texture_01.png b/raw-assets/kenney_prototype-textures/PNG/Dark/texture_01.png new file mode 100644 index 0000000..69be211 Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Dark/texture_01.png differ diff --git a/raw-assets/kenney_prototype-textures/PNG/Dark/texture_02.png b/raw-assets/kenney_prototype-textures/PNG/Dark/texture_02.png new file mode 100644 index 0000000..6fb471b Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Dark/texture_02.png differ diff --git a/raw-assets/kenney_prototype-textures/PNG/Dark/texture_03.png b/raw-assets/kenney_prototype-textures/PNG/Dark/texture_03.png new file mode 100644 index 0000000..3f8b186 Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Dark/texture_03.png differ diff --git a/raw-assets/kenney_prototype-textures/PNG/Dark/texture_04.png b/raw-assets/kenney_prototype-textures/PNG/Dark/texture_04.png new file mode 100644 index 0000000..e2bc22b Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Dark/texture_04.png differ diff --git a/raw-assets/kenney_prototype-textures/PNG/Dark/texture_05.png b/raw-assets/kenney_prototype-textures/PNG/Dark/texture_05.png new file mode 100644 index 0000000..3fd2e56 Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Dark/texture_05.png differ diff --git a/raw-assets/kenney_prototype-textures/PNG/Dark/texture_06.png b/raw-assets/kenney_prototype-textures/PNG/Dark/texture_06.png new file mode 100644 index 0000000..45d4a34 Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Dark/texture_06.png differ diff --git a/raw-assets/kenney_prototype-textures/PNG/Dark/texture_07.png b/raw-assets/kenney_prototype-textures/PNG/Dark/texture_07.png new file mode 100644 index 0000000..adf5e6f Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Dark/texture_07.png differ diff --git a/raw-assets/kenney_prototype-textures/PNG/Dark/texture_08.png b/raw-assets/kenney_prototype-textures/PNG/Dark/texture_08.png new file mode 100644 index 0000000..a5a9f24 Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Dark/texture_08.png differ diff --git a/raw-assets/kenney_prototype-textures/PNG/Dark/texture_09.png b/raw-assets/kenney_prototype-textures/PNG/Dark/texture_09.png new file mode 100644 index 0000000..57cc607 Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Dark/texture_09.png differ diff --git a/raw-assets/kenney_prototype-textures/PNG/Dark/texture_10.png b/raw-assets/kenney_prototype-textures/PNG/Dark/texture_10.png new file mode 100644 index 0000000..4c737d0 Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Dark/texture_10.png differ diff --git a/raw-assets/kenney_prototype-textures/PNG/Dark/texture_11.png b/raw-assets/kenney_prototype-textures/PNG/Dark/texture_11.png new file mode 100644 index 0000000..424ba71 Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Dark/texture_11.png differ diff --git a/raw-assets/kenney_prototype-textures/PNG/Dark/texture_12.png b/raw-assets/kenney_prototype-textures/PNG/Dark/texture_12.png new file mode 100644 index 0000000..32169db Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Dark/texture_12.png differ diff --git a/raw-assets/kenney_prototype-textures/PNG/Dark/texture_13.png b/raw-assets/kenney_prototype-textures/PNG/Dark/texture_13.png new file mode 100644 index 0000000..13c4388 Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Dark/texture_13.png differ diff --git a/raw-assets/kenney_prototype-textures/PNG/Green/texture_01.png b/raw-assets/kenney_prototype-textures/PNG/Green/texture_01.png new file mode 100644 index 0000000..d576514 Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Green/texture_01.png differ diff --git a/raw-assets/kenney_prototype-textures/PNG/Green/texture_02.png b/raw-assets/kenney_prototype-textures/PNG/Green/texture_02.png new file mode 100644 index 0000000..7bc7cf8 Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Green/texture_02.png differ diff --git a/raw-assets/kenney_prototype-textures/PNG/Green/texture_03.png b/raw-assets/kenney_prototype-textures/PNG/Green/texture_03.png new file mode 100644 index 0000000..e2a3889 Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Green/texture_03.png differ diff --git a/raw-assets/kenney_prototype-textures/PNG/Green/texture_04.png b/raw-assets/kenney_prototype-textures/PNG/Green/texture_04.png new file mode 100644 index 0000000..3952bef Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Green/texture_04.png differ diff --git a/raw-assets/kenney_prototype-textures/PNG/Green/texture_05.png b/raw-assets/kenney_prototype-textures/PNG/Green/texture_05.png new file mode 100644 index 0000000..84976ba Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Green/texture_05.png differ diff --git a/raw-assets/kenney_prototype-textures/PNG/Green/texture_06.png b/raw-assets/kenney_prototype-textures/PNG/Green/texture_06.png new file mode 100644 index 0000000..1128198 Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Green/texture_06.png differ diff --git a/raw-assets/kenney_prototype-textures/PNG/Green/texture_07.png b/raw-assets/kenney_prototype-textures/PNG/Green/texture_07.png new file mode 100644 index 0000000..3160860 Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Green/texture_07.png differ diff --git a/raw-assets/kenney_prototype-textures/PNG/Green/texture_08.png b/raw-assets/kenney_prototype-textures/PNG/Green/texture_08.png new file mode 100644 index 0000000..386293d Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Green/texture_08.png differ diff --git a/raw-assets/kenney_prototype-textures/PNG/Green/texture_09.png b/raw-assets/kenney_prototype-textures/PNG/Green/texture_09.png new file mode 100644 index 0000000..48234f6 Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Green/texture_09.png differ diff --git a/raw-assets/kenney_prototype-textures/PNG/Green/texture_10.png b/raw-assets/kenney_prototype-textures/PNG/Green/texture_10.png new file mode 100644 index 0000000..e4ab057 Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Green/texture_10.png differ diff --git a/raw-assets/kenney_prototype-textures/PNG/Green/texture_11.png b/raw-assets/kenney_prototype-textures/PNG/Green/texture_11.png new file mode 100644 index 0000000..82ad458 Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Green/texture_11.png differ diff --git a/raw-assets/kenney_prototype-textures/PNG/Green/texture_12.png b/raw-assets/kenney_prototype-textures/PNG/Green/texture_12.png new file mode 100644 index 0000000..a15000d Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Green/texture_12.png differ diff --git a/raw-assets/kenney_prototype-textures/PNG/Green/texture_13.png b/raw-assets/kenney_prototype-textures/PNG/Green/texture_13.png new file mode 100644 index 0000000..930fdf0 Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Green/texture_13.png differ diff --git a/raw-assets/kenney_prototype-textures/PNG/Light/texture_01.png b/raw-assets/kenney_prototype-textures/PNG/Light/texture_01.png new file mode 100644 index 0000000..60b632b Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Light/texture_01.png differ diff --git a/raw-assets/kenney_prototype-textures/PNG/Light/texture_02.png b/raw-assets/kenney_prototype-textures/PNG/Light/texture_02.png new file mode 100644 index 0000000..19aad62 Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Light/texture_02.png differ diff --git a/raw-assets/kenney_prototype-textures/PNG/Light/texture_03.png b/raw-assets/kenney_prototype-textures/PNG/Light/texture_03.png new file mode 100644 index 0000000..a8a6c06 Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Light/texture_03.png differ diff --git a/raw-assets/kenney_prototype-textures/PNG/Light/texture_04.png b/raw-assets/kenney_prototype-textures/PNG/Light/texture_04.png new file mode 100644 index 0000000..b8270e1 Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Light/texture_04.png differ diff --git a/raw-assets/kenney_prototype-textures/PNG/Light/texture_05.png b/raw-assets/kenney_prototype-textures/PNG/Light/texture_05.png new file mode 100644 index 0000000..5b985bf Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Light/texture_05.png differ diff --git a/raw-assets/kenney_prototype-textures/PNG/Light/texture_06.png b/raw-assets/kenney_prototype-textures/PNG/Light/texture_06.png new file mode 100644 index 0000000..195ad77 Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Light/texture_06.png differ diff --git a/raw-assets/kenney_prototype-textures/PNG/Light/texture_07.png b/raw-assets/kenney_prototype-textures/PNG/Light/texture_07.png new file mode 100644 index 0000000..fbf92e0 Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Light/texture_07.png differ diff --git a/raw-assets/kenney_prototype-textures/PNG/Light/texture_08.png b/raw-assets/kenney_prototype-textures/PNG/Light/texture_08.png new file mode 100644 index 0000000..72e1a07 Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Light/texture_08.png differ diff --git a/raw-assets/kenney_prototype-textures/PNG/Light/texture_09.png b/raw-assets/kenney_prototype-textures/PNG/Light/texture_09.png new file mode 100644 index 0000000..9ada5dd Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Light/texture_09.png differ diff --git a/raw-assets/kenney_prototype-textures/PNG/Light/texture_10.png b/raw-assets/kenney_prototype-textures/PNG/Light/texture_10.png new file mode 100644 index 0000000..4fbcc80 Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Light/texture_10.png differ diff --git a/raw-assets/kenney_prototype-textures/PNG/Light/texture_11.png b/raw-assets/kenney_prototype-textures/PNG/Light/texture_11.png new file mode 100644 index 0000000..840ecec Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Light/texture_11.png differ diff --git a/raw-assets/kenney_prototype-textures/PNG/Light/texture_12.png b/raw-assets/kenney_prototype-textures/PNG/Light/texture_12.png new file mode 100644 index 0000000..25c2e78 Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Light/texture_12.png differ diff --git a/raw-assets/kenney_prototype-textures/PNG/Light/texture_13.png b/raw-assets/kenney_prototype-textures/PNG/Light/texture_13.png new file mode 100644 index 0000000..a235965 Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Light/texture_13.png differ diff --git a/raw-assets/kenney_prototype-textures/PNG/Orange/texture_01.png b/raw-assets/kenney_prototype-textures/PNG/Orange/texture_01.png new file mode 100644 index 0000000..4f5bf92 Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Orange/texture_01.png differ diff --git a/raw-assets/kenney_prototype-textures/PNG/Orange/texture_02.png b/raw-assets/kenney_prototype-textures/PNG/Orange/texture_02.png new file mode 100644 index 0000000..dec5b59 Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Orange/texture_02.png differ diff --git a/raw-assets/kenney_prototype-textures/PNG/Orange/texture_03.png b/raw-assets/kenney_prototype-textures/PNG/Orange/texture_03.png new file mode 100644 index 0000000..666197f Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Orange/texture_03.png differ diff --git a/raw-assets/kenney_prototype-textures/PNG/Orange/texture_04.png b/raw-assets/kenney_prototype-textures/PNG/Orange/texture_04.png new file mode 100644 index 0000000..23d6fc4 Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Orange/texture_04.png differ diff --git a/raw-assets/kenney_prototype-textures/PNG/Orange/texture_05.png b/raw-assets/kenney_prototype-textures/PNG/Orange/texture_05.png new file mode 100644 index 0000000..1e0448a Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Orange/texture_05.png differ diff --git a/raw-assets/kenney_prototype-textures/PNG/Orange/texture_06.png b/raw-assets/kenney_prototype-textures/PNG/Orange/texture_06.png new file mode 100644 index 0000000..5486825 Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Orange/texture_06.png differ diff --git a/raw-assets/kenney_prototype-textures/PNG/Orange/texture_07.png b/raw-assets/kenney_prototype-textures/PNG/Orange/texture_07.png new file mode 100644 index 0000000..95f2790 Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Orange/texture_07.png differ diff --git a/raw-assets/kenney_prototype-textures/PNG/Orange/texture_08.png b/raw-assets/kenney_prototype-textures/PNG/Orange/texture_08.png new file mode 100644 index 0000000..5a500d9 Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Orange/texture_08.png differ diff --git a/raw-assets/kenney_prototype-textures/PNG/Orange/texture_09.png b/raw-assets/kenney_prototype-textures/PNG/Orange/texture_09.png new file mode 100644 index 0000000..adcfa33 Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Orange/texture_09.png differ diff --git a/raw-assets/kenney_prototype-textures/PNG/Orange/texture_10.png b/raw-assets/kenney_prototype-textures/PNG/Orange/texture_10.png new file mode 100644 index 0000000..aa227e5 Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Orange/texture_10.png differ diff --git a/raw-assets/kenney_prototype-textures/PNG/Orange/texture_11.png b/raw-assets/kenney_prototype-textures/PNG/Orange/texture_11.png new file mode 100644 index 0000000..dc94567 Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Orange/texture_11.png differ diff --git a/raw-assets/kenney_prototype-textures/PNG/Orange/texture_12.png b/raw-assets/kenney_prototype-textures/PNG/Orange/texture_12.png new file mode 100644 index 0000000..b730544 Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Orange/texture_12.png differ diff --git a/raw-assets/kenney_prototype-textures/PNG/Orange/texture_13.png b/raw-assets/kenney_prototype-textures/PNG/Orange/texture_13.png new file mode 100644 index 0000000..01f4aa8 Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Orange/texture_13.png differ diff --git a/raw-assets/kenney_prototype-textures/PNG/Purple/texture_01.png b/raw-assets/kenney_prototype-textures/PNG/Purple/texture_01.png new file mode 100644 index 0000000..d501875 Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Purple/texture_01.png differ diff --git a/raw-assets/kenney_prototype-textures/PNG/Purple/texture_02.png b/raw-assets/kenney_prototype-textures/PNG/Purple/texture_02.png new file mode 100644 index 0000000..48a51c1 Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Purple/texture_02.png differ diff --git a/raw-assets/kenney_prototype-textures/PNG/Purple/texture_03.png b/raw-assets/kenney_prototype-textures/PNG/Purple/texture_03.png new file mode 100644 index 0000000..5f97f24 Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Purple/texture_03.png differ diff --git a/raw-assets/kenney_prototype-textures/PNG/Purple/texture_04.png b/raw-assets/kenney_prototype-textures/PNG/Purple/texture_04.png new file mode 100644 index 0000000..b81951c Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Purple/texture_04.png differ diff --git a/raw-assets/kenney_prototype-textures/PNG/Purple/texture_05.png b/raw-assets/kenney_prototype-textures/PNG/Purple/texture_05.png new file mode 100644 index 0000000..52352c8 Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Purple/texture_05.png differ diff --git a/raw-assets/kenney_prototype-textures/PNG/Purple/texture_06.png b/raw-assets/kenney_prototype-textures/PNG/Purple/texture_06.png new file mode 100644 index 0000000..86deeb3 Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Purple/texture_06.png differ diff --git a/raw-assets/kenney_prototype-textures/PNG/Purple/texture_07.png b/raw-assets/kenney_prototype-textures/PNG/Purple/texture_07.png new file mode 100644 index 0000000..b71ce4e Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Purple/texture_07.png differ diff --git a/raw-assets/kenney_prototype-textures/PNG/Purple/texture_08.png b/raw-assets/kenney_prototype-textures/PNG/Purple/texture_08.png new file mode 100644 index 0000000..470cc5c Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Purple/texture_08.png differ diff --git a/raw-assets/kenney_prototype-textures/PNG/Purple/texture_09.png b/raw-assets/kenney_prototype-textures/PNG/Purple/texture_09.png new file mode 100644 index 0000000..4a3f689 Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Purple/texture_09.png differ diff --git a/raw-assets/kenney_prototype-textures/PNG/Purple/texture_10.png b/raw-assets/kenney_prototype-textures/PNG/Purple/texture_10.png new file mode 100644 index 0000000..ab7e84b Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Purple/texture_10.png differ diff --git a/raw-assets/kenney_prototype-textures/PNG/Purple/texture_11.png b/raw-assets/kenney_prototype-textures/PNG/Purple/texture_11.png new file mode 100644 index 0000000..ad7bebc Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Purple/texture_11.png differ diff --git a/raw-assets/kenney_prototype-textures/PNG/Purple/texture_12.png b/raw-assets/kenney_prototype-textures/PNG/Purple/texture_12.png new file mode 100644 index 0000000..979ac5a Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Purple/texture_12.png differ diff --git a/raw-assets/kenney_prototype-textures/PNG/Purple/texture_13.png b/raw-assets/kenney_prototype-textures/PNG/Purple/texture_13.png new file mode 100644 index 0000000..2a9df22 Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Purple/texture_13.png differ diff --git a/raw-assets/kenney_prototype-textures/PNG/Red/texture_01.png b/raw-assets/kenney_prototype-textures/PNG/Red/texture_01.png new file mode 100644 index 0000000..1aaab41 Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Red/texture_01.png differ diff --git a/raw-assets/kenney_prototype-textures/PNG/Red/texture_02.png b/raw-assets/kenney_prototype-textures/PNG/Red/texture_02.png new file mode 100644 index 0000000..bf1cb17 Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Red/texture_02.png differ diff --git a/raw-assets/kenney_prototype-textures/PNG/Red/texture_03.png b/raw-assets/kenney_prototype-textures/PNG/Red/texture_03.png new file mode 100644 index 0000000..ff09c22 Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Red/texture_03.png differ diff --git a/raw-assets/kenney_prototype-textures/PNG/Red/texture_04.png b/raw-assets/kenney_prototype-textures/PNG/Red/texture_04.png new file mode 100644 index 0000000..b5b77ff Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Red/texture_04.png differ diff --git a/raw-assets/kenney_prototype-textures/PNG/Red/texture_05.png b/raw-assets/kenney_prototype-textures/PNG/Red/texture_05.png new file mode 100644 index 0000000..7827035 Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Red/texture_05.png differ diff --git a/raw-assets/kenney_prototype-textures/PNG/Red/texture_06.png b/raw-assets/kenney_prototype-textures/PNG/Red/texture_06.png new file mode 100644 index 0000000..914a6f1 Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Red/texture_06.png differ diff --git a/raw-assets/kenney_prototype-textures/PNG/Red/texture_07.png b/raw-assets/kenney_prototype-textures/PNG/Red/texture_07.png new file mode 100644 index 0000000..47d517b Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Red/texture_07.png differ diff --git a/raw-assets/kenney_prototype-textures/PNG/Red/texture_08.png b/raw-assets/kenney_prototype-textures/PNG/Red/texture_08.png new file mode 100644 index 0000000..07cfc41 Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Red/texture_08.png differ diff --git a/raw-assets/kenney_prototype-textures/PNG/Red/texture_09.png b/raw-assets/kenney_prototype-textures/PNG/Red/texture_09.png new file mode 100644 index 0000000..86d67d8 Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Red/texture_09.png differ diff --git a/raw-assets/kenney_prototype-textures/PNG/Red/texture_10.png b/raw-assets/kenney_prototype-textures/PNG/Red/texture_10.png new file mode 100644 index 0000000..a9266d1 Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Red/texture_10.png differ diff --git a/raw-assets/kenney_prototype-textures/PNG/Red/texture_11.png b/raw-assets/kenney_prototype-textures/PNG/Red/texture_11.png new file mode 100644 index 0000000..2acc544 Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Red/texture_11.png differ diff --git a/raw-assets/kenney_prototype-textures/PNG/Red/texture_12.png b/raw-assets/kenney_prototype-textures/PNG/Red/texture_12.png new file mode 100644 index 0000000..7054c4d Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Red/texture_12.png differ diff --git a/raw-assets/kenney_prototype-textures/PNG/Red/texture_13.png b/raw-assets/kenney_prototype-textures/PNG/Red/texture_13.png new file mode 100644 index 0000000..ab8c7b9 Binary files /dev/null and b/raw-assets/kenney_prototype-textures/PNG/Red/texture_13.png differ diff --git a/raw-assets/kenney_prototype-textures/Patreon.url b/raw-assets/kenney_prototype-textures/Patreon.url new file mode 100644 index 0000000..67e9ea5 --- /dev/null +++ b/raw-assets/kenney_prototype-textures/Patreon.url @@ -0,0 +1,2 @@ +[InternetShortcut] +URL=https://www.patreon.com/kenney/ \ No newline at end of file diff --git a/raw-assets/kenney_prototype-textures/Preview.png b/raw-assets/kenney_prototype-textures/Preview.png new file mode 100644 index 0000000..148cbd8 Binary files /dev/null and b/raw-assets/kenney_prototype-textures/Preview.png differ diff --git a/raw-assets/kenney_prototype-textures/Sample.png b/raw-assets/kenney_prototype-textures/Sample.png new file mode 100644 index 0000000..5699163 Binary files /dev/null and b/raw-assets/kenney_prototype-textures/Sample.png differ diff --git a/raw-assets/kenney_prototype-textures/Vector/texture_01.svg b/raw-assets/kenney_prototype-textures/Vector/texture_01.svg new file mode 100644 index 0000000..fc16bc7 --- /dev/null +++ b/raw-assets/kenney_prototype-textures/Vector/texture_01.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/raw-assets/kenney_prototype-textures/Vector/texture_02.svg b/raw-assets/kenney_prototype-textures/Vector/texture_02.svg new file mode 100644 index 0000000..6af7715 --- /dev/null +++ b/raw-assets/kenney_prototype-textures/Vector/texture_02.svg @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/raw-assets/kenney_prototype-textures/Vector/texture_03.svg b/raw-assets/kenney_prototype-textures/Vector/texture_03.svg new file mode 100644 index 0000000..1a23062 --- /dev/null +++ b/raw-assets/kenney_prototype-textures/Vector/texture_03.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/raw-assets/kenney_prototype-textures/Vector/texture_04.svg b/raw-assets/kenney_prototype-textures/Vector/texture_04.svg new file mode 100644 index 0000000..b8891ad --- /dev/null +++ b/raw-assets/kenney_prototype-textures/Vector/texture_04.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/raw-assets/kenney_prototype-textures/Vector/texture_05.svg b/raw-assets/kenney_prototype-textures/Vector/texture_05.svg new file mode 100644 index 0000000..fa737e9 --- /dev/null +++ b/raw-assets/kenney_prototype-textures/Vector/texture_05.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/raw-assets/kenney_prototype-textures/Vector/texture_06.svg b/raw-assets/kenney_prototype-textures/Vector/texture_06.svg new file mode 100644 index 0000000..2d7fa36 --- /dev/null +++ b/raw-assets/kenney_prototype-textures/Vector/texture_06.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/raw-assets/kenney_prototype-textures/Vector/texture_07.svg b/raw-assets/kenney_prototype-textures/Vector/texture_07.svg new file mode 100644 index 0000000..2f76dcd --- /dev/null +++ b/raw-assets/kenney_prototype-textures/Vector/texture_07.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/raw-assets/kenney_prototype-textures/Vector/texture_08.svg b/raw-assets/kenney_prototype-textures/Vector/texture_08.svg new file mode 100644 index 0000000..cb098b8 --- /dev/null +++ b/raw-assets/kenney_prototype-textures/Vector/texture_08.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/raw-assets/kenney_prototype-textures/Vector/texture_09.svg b/raw-assets/kenney_prototype-textures/Vector/texture_09.svg new file mode 100644 index 0000000..d21be51 --- /dev/null +++ b/raw-assets/kenney_prototype-textures/Vector/texture_09.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/raw-assets/kenney_prototype-textures/Vector/texture_10.svg b/raw-assets/kenney_prototype-textures/Vector/texture_10.svg new file mode 100644 index 0000000..5e998e8 --- /dev/null +++ b/raw-assets/kenney_prototype-textures/Vector/texture_10.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/raw-assets/kenney_prototype-textures/Vector/texture_11.svg b/raw-assets/kenney_prototype-textures/Vector/texture_11.svg new file mode 100644 index 0000000..fea61c5 --- /dev/null +++ b/raw-assets/kenney_prototype-textures/Vector/texture_11.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/raw-assets/kenney_prototype-textures/Vector/texture_12.svg b/raw-assets/kenney_prototype-textures/Vector/texture_12.svg new file mode 100644 index 0000000..c0bba91 --- /dev/null +++ b/raw-assets/kenney_prototype-textures/Vector/texture_12.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/raw-assets/kenney_prototype-textures/Vector/texture_13.svg b/raw-assets/kenney_prototype-textures/Vector/texture_13.svg new file mode 100644 index 0000000..1d821bf --- /dev/null +++ b/raw-assets/kenney_prototype-textures/Vector/texture_13.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/raw-assets/test_map.blend b/raw-assets/test_map.blend new file mode 100644 index 0000000..ab64943 Binary files /dev/null and b/raw-assets/test_map.blend differ diff --git a/shell.nix b/shell.nix index b02745e..6310146 100644 --- a/shell.nix +++ b/shell.nix @@ -8,6 +8,7 @@ mkShell rec { pkg-config ]; buildInputs = [ + trunk mold clang # To compile using mold linker udev alsa-lib vulkan-loader xorg.libX11 xorg.libXcursor xorg.libXi xorg.libXrandr # To use the x11 feature diff --git a/src/charcacter_controller.rs b/src/charcacter_controller.rs index 08eb138..676ae2c 100644 --- a/src/charcacter_controller.rs +++ b/src/charcacter_controller.rs @@ -24,10 +24,15 @@ impl Plugin for CharacterControllerPlugin{ fn build(&self, app: &mut App) { app.add_systems(Update,( keyboard_input, + move_character, + ) + ); + app.add_systems(FixedUpdate, ( + + dampen_movement, + update_grounded ) ); - app.add_systems(FixedUpdate, (move_character, - dampen_movement,update_grounded)); app.add_event::(); } } @@ -151,7 +156,8 @@ pub fn move_character( time: Res