diff --git a/.combo.yaml b/.combo.yaml new file mode 100644 index 0000000..52547f0 --- /dev/null +++ b/.combo.yaml @@ -0,0 +1,5 @@ +godot: + version: '4.1.2' +game: + name: Marble + version: '1.4.1' diff --git a/.github/actions/download-artifact/action.yml b/.github/actions/download-artifact/action.yml deleted file mode 100644 index 14b19ce..0000000 --- a/.github/actions/download-artifact/action.yml +++ /dev/null @@ -1,19 +0,0 @@ - -name: Download artifact -description: Download artifact. -inputs: - name: - description: The artifact name. - default: "${{ github.job }}" - path: - description: The path to download. - required: true - default: "dist/*" -runs: - using: "composite" - steps: - - name: Download Artifact - uses: actions/download-artifact@v3 - with: - name: ${{ inputs.name }} - path: ${{ inputs.path }} diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f78b674..493d8b0 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -4,11 +4,16 @@ on: push: branches: [main] tags: ['*'] + pull_request: + branches: [main] workflow_dispatch: +env: + tag_name: ${{ github.ref_name }} + jobs: build: - runs-on: ubuntu-22.04 + runs-on: ubuntu-20.04 timeout-minutes: 30 strategy: @@ -31,16 +36,18 @@ jobs: steps: - uses: actions/checkout@v4 - - name: Setup Versions Vars - run: | - echo "game_version=$(cat .version)" >> $GITHUB_ENV - echo "godot_version=$(cat .godot_version)" >> $GITHUB_ENV - ./bump_version.sh + - uses: MechanicalFlower/magic_combo@main + with: + command: script.add-config-to-github-env + + - uses: MechanicalFlower/magic_combo@main + with: + command: script.bump-version - name: Ensure version is equal to tag - if: startsWith(github.ref, 'refs/tags/v') + if: startsWith(github.ref, 'refs/tags/') run: | - [ "${{ env.game_version }}" == "$GITHUB_REF_NAME" ] || exit 2 + [ "${{ env.game_version }}" == "${{ env.tag_name }}" ] || exit 2 - name: Export Marble uses: ./.github/actions/export-game @@ -68,5 +75,5 @@ jobs: uses: JamesIves/github-pages-deploy-action@v4 with: token: ${{ secrets.GITHUB_TOKEN }} - branch: gh-pages # The branch the action should deploy to. - folder: build/web # The folder the action should deploy. + branch: gh-pages + folder: build/web diff --git a/.github/workflows/changelog_verifier.yml b/.github/workflows/changelog_verifier.yml new file mode 100644 index 0000000..3582306 --- /dev/null +++ b/.github/workflows/changelog_verifier.yml @@ -0,0 +1,15 @@ +name: Changelog Verifier + +on: + pull_request: + types: [opened, edited, review_requested, synchronize, reopened, ready_for_review, labeled, unlabeled] + +jobs: + # Enforces the update of a changelog file on every pull request + verify-changelog: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: dangoslen/changelog-enforcer@v3 + with: + skipLabels: "autocut, skip-changelog" diff --git a/.github/workflows/dependabot_pr.yml b/.github/workflows/dependabot_pr.yml new file mode 100644 index 0000000..4b9f082 --- /dev/null +++ b/.github/workflows/dependabot_pr.yml @@ -0,0 +1,30 @@ +name: Dependabot PR actions + +on: + pull_request: + types: [opened, synchronize, reopened, labeled, unlabeled] + +jobs: + dependabot: + runs-on: ubuntu-latest + permissions: + pull-requests: write + contents: write + + if: ${{ github.actor == 'dependabot[bot]' }} + steps: + - name: Check out code + uses: actions/checkout@v4 + + - name: Update the changelog + uses: dangoslen/dependabot-changelog-helper@v3 + with: + version: 'Unreleased' + + - name: Commit the changes + uses: stefanzweifel/git-auto-commit-action@v5 + with: + commit_message: "chore(changelog): automatic update to add dependabot deps bump" + branch: ${{ github.head_ref }} + commit_user_name: dependabot[bot] + commit_user_email: support@github.com diff --git a/.github/workflows/links.yml b/.github/workflows/links.yml new file mode 100644 index 0000000..a6ba346 --- /dev/null +++ b/.github/workflows/links.yml @@ -0,0 +1,20 @@ +name: Link Checker +on: + push: + pull_request: + +jobs: + linkchecker: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + - name: lychee Link Checker + id: lychee + uses: lycheeverse/lychee-action@v1 + with: + args: --accept=200,403,429 "**/*.html" "**/*.md" "**/*.txt" "**/*.json" --exclude "file:///github/workspace/*" --exclude-path ".github/renovate.json" --exclude-mail + fail: true + env: + GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} diff --git a/.github/workflows/lint_pr_title.yml b/.github/workflows/lint_pr_title.yml new file mode 100644 index 0000000..405408f --- /dev/null +++ b/.github/workflows/lint_pr_title.yml @@ -0,0 +1,34 @@ +name: Lint PR Title + +on: + pull_request_target: + types: + - opened + - edited + - synchronize + +permissions: + pull-requests: read + +jobs: + main: + name: Validate PR title + runs-on: ubuntu-latest + steps: + - uses: amannn/action-semantic-pull-request@v5 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + scopes: | + addons + assets + scripts + scenes + dependabot + workflows + readme + changelog + deps + requireScope: false + validateSingleCommit: true + validateSingleCommitMatchesPrTitle: true diff --git a/.github/workflows/pre-commit.yaml b/.github/workflows/pre-commit.yaml index a3aa0e7..8158d33 100644 --- a/.github/workflows/pre-commit.yaml +++ b/.github/workflows/pre-commit.yaml @@ -1,4 +1,3 @@ - name: Pre-commit on: @@ -10,8 +9,7 @@ jobs: pre-commit: runs-on: ubuntu-latest steps: - - name: Checkout - uses: actions/checkout@v4 + - uses: actions/checkout@v4 - name: Set up Python uses: actions/setup-python@v4 with: diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 5be6d47..b1f026d 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -5,7 +5,9 @@ on: workflow_run: workflows: ["Build"] types: [completed] - tags: ['[0-9]+.[0-9]+.[0-9]+'] + +env: + tag_name: ${{ github.event.workflow_run.head_branch }} jobs: create_release: @@ -14,18 +16,24 @@ jobs: name: Create Release steps: + - name: Check Tag + run: | + if [[ ! ${{ env.tag_name }} =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then + exit 1 + fi + - name: Create Draft release run: | - gh release create "$GITHUB_REF_NAME" \ - --repo="$GITHUB_REPOSITORY" \ - --title="v$GITHUB_REF_NAME" \ + gh release create "${{ env.tag_name }}" \ + --repo="${{ github.repository }}" \ + --title="v${{ env.tag_name }}" \ --draft env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} publish: needs: create_release - runs-on: ubuntu-22.04 + runs-on: ubuntu-20.04 strategy: fail-fast: false @@ -46,17 +54,19 @@ jobs: name: ${{ matrix.preset }} Publish steps: - name: Download artifact - uses: ./.github/actions/upload-artifact + uses: dawidd6/action-download-artifact@v2 with: - name: Marble-${{ matrix.platform }}-v$GITHUB_REF_NAME + workflow: ${{ github.event.workflow_run.workflow_id }} + name: Marble-${{ matrix.platform }}-v${{ env.tag_name }} path: dist/${{ matrix.platform }} + skip_unpack: true - name: Upload to release run: | - gh release upload "$GITHUB_REF_NAME" \ - --repo="$GITHUB_REPOSITORY" \ - --clobber \ - dist/${{ matrix.platform }}/Marble-${{ matrix.platform }}-v$GITHUB_REF_NAME.zip + gh release upload "${{ env.tag_name }}" \ + --repo="${{ github.repository }}" \ + --clobber \ + dist/${{ matrix.platform }}/Marble-${{ matrix.platform }}-v${{ env.tag_name }}.zip env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -64,8 +74,8 @@ jobs: uses: josephbmanley/butler-publish-itchio-action@v1.0.3 env: BUTLER_CREDENTIALS: ${{ secrets.BUTLER_API_KEY }} - CHANNEL: ${{ matrix.platform }}-v$GITHUB_REF_NAME - ITCH_GAME: marble + CHANNEL: ${{ matrix.platform }} + ITCH_GAME: Marble ITCH_USER: mechanical-flower - PACKAGE: dist/${{ matrix.platform }}/Marble-${{ matrix.platform }}-v$GITHUB_REF_NAME.zip - VERSION: $GITHUB_REF_NAME + PACKAGE: dist/${{ matrix.platform }}/Marble-${{ matrix.platform }}-v${{ env.tag_name }}.zip + VERSION: ${{ env.tag_name }} diff --git a/.godot_version b/.godot_version deleted file mode 100644 index 627a3f4..0000000 --- a/.godot_version +++ /dev/null @@ -1 +0,0 @@ -4.1.1 diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index a025334..4efcace 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -13,30 +13,14 @@ repos: - id: end-of-file-fixer # Checks for ending with a newline - id: mixed-line-ending # Consistent LF or CRLF - id: trailing-whitespace # No trailing whitespace -- repo: https://github.com/codespell-project/codespell - rev: v2.2.5 - hooks: - - id: codespell - repo: https://github.com/fsfe/reuse-tool rev: v2.0.0 hooks: - id: reuse -- repo: https://github.com/PyCQA/isort - rev: 5.12.0 - hooks: - - id: isort -- repo: https://github.com/PyCQA/bandit - rev: 1.7.5 - hooks: - - id: bandit -- repo: https://github.com/PyCQA/flake8 - rev: 6.0.0 - hooks: - - id: flake8 -- repo: https://github.com/pre-commit/mirrors-mypy - rev: v1.4.1 +- repo: https://github.com/codespell-project/codespell + rev: v2.2.5 hooks: - - id: mypy + - id: codespell - repo: local hooks: - id: lower-case-only @@ -51,6 +35,7 @@ repos: public/| Makefile| CONTRIBUTING.md| + CHANGELOG.md| CREDITS.md| LICENSE.md| README.md diff --git a/.reuse/dep5 b/.reuse/dep5 index ec24e6c..c3b10eb 100644 --- a/.reuse/dep5 +++ b/.reuse/dep5 @@ -55,11 +55,6 @@ Copyright: 2011 Destructavator License: CC-BY-3.0 Source: https://opengameart.org/content/countdown -Files: assets/sounds/countdown/* -Copyright: 2011 Destructavator -License: CC-BY-3.0 -Source: https://opengameart.org/content/countdown - Files: assets/sounds/sfx/* Copyright: 2019 Zylann License: CC-BY-NC-ND-1.0 diff --git a/.version b/.version deleted file mode 100644 index 347f583..0000000 --- a/.version +++ /dev/null @@ -1 +0,0 @@ -1.4.1 diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..618ba07 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,13 @@ +# CHANGELOG +Inspired from [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) + +## [Unreleased] +### Added +### Changed +### Deprecated +### Removed +### Fixed +### Security +### Dependencies + +[Unreleased]: https://github.com/MechanicalFlower/Marble/compare/1.4.1...HEAD diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 98b0bc0..a9750b1 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,19 +1,18 @@ - # Contributing -We welcome contributions to our open source Godot game project! There are many ways you can help, including reporting bugs, improving documentation, and contributing code. +We welcome contributions to our open source Godot + game project! There are many ways you can help, + including reporting bugs, improving documentation, + and contributing code. ## Code of Conduct -We value the participation of every member of our community and want to ensure that everyone has an enjoyable and fulfilling experience. As such, we have adopted the [Contributor Covenant](https://www.contributor-covenant.org/) as our code of conduct. By participating in this project, you agree to abide by its terms. - -## Prerequisites - -Before you start, you will need the following: - -- A GitHub account -- A copy of the Godot game engine installed on your computer -- Familiarity with Git and GitHub +We value the participation of every member of our + community and want to ensure that everyone + has an enjoyable and fulfilling experience. As + such, we have adopted the [Contributor Covenant](https://www.contributor-covenant.org/) as + our code of conduct. By participating in this + project, you agree to abide by its terms. ## Contributing Code @@ -26,34 +25,38 @@ To contribute code to the project, follow these steps: 5. Push your changes to your forked repository on GitHub. 6. Create a pull request from your forked repository to the original repository. -Please note that all code contributions should pass the continuous integration (CI) checks that are set up for the project. These checks ensure that the code is well-formatted and that tests are passing. - -## Pre-commit Requirements - -To ensure that your code passes the CI checks, you should run the following pre-commit checks before committing and pushing your changes: - -- Run the code formatter to ensure that your code is properly formatted according to the project's style guidelines. -- Run the test suite to ensure that all tests are passing. - -You can set up pre-commit hooks to automatically run these checks before you commit your changes. To do this, you will need to install the following tools: - -- The `pre-commit` Python package: This package contains a set of tools for running checks on your code before committing it. You can install it using `pip install pre-commit`. -- The `godot-gdscript-toolkit`: This toolkit contains a set of tools for formatting and linting GDScript code. You can install it using `pip install 'gdtoolkit==3.*'`. - -Then, run `pre-commit install` to set up the hooks. +Please note that all code contributions should + pass the continuous integration (CI) checks + that are set up for the project. These checks + ensure that the code is well-formatted and + that tests are passing. -Alternatively, you can run `pre-commit run --all-files` to manually run all the checks on your code before committing. This can save you time and ensure that your code is ready to be merged into the main repository. ## Reporting Bugs -If you find a bug in the project, please report it by creating an issue in the repository's issue tracker. Be sure to include as much information as possible, including the steps to reproduce the bug and any relevant error messages. +If you find a bug in the project, please report + it by creating an issue in the repository's issue + tracker. Be sure to include as much information + as possible, including the steps to reproduce + the bug and any relevant error messages. ## Improving Documentation -If you would like to improve the documentation for the project, you can do so by submitting a pull request with your changes. Please follow the same process as for contributing code, and make sure that your changes are properly formatted and well-written. +If you would like to improve the documentation + for the project, you can do so by submitting a + pull request with your changes. Please follow + the same process as for contributing code, and + make sure that your changes are properly formatted + and well-written. ## Questions and Feedback -If you have any questions or feedback about the project, don't hesitate to reach out! You can create an issue in the repository's issue tracker, or contact us directly through our website or social media channels. +If you have any questions or feedback about the + project, don't hesitate to reach out! You can + create an issue in the repository's issue tracker, + or contact us directly through our website or + social media channels. -Thank you for considering contributing to our open source Godot game project! We appreciate your help and look forward to working with you. +Thank you for considering contributing to our + open source Godot game project! We appreciate + your help and look forward to working with you. diff --git a/CREDITS.md b/CREDITS.md index ef8172b..8be6560 100644 --- a/CREDITS.md +++ b/CREDITS.md @@ -1,13 +1,19 @@ # Credits ## Addons -- "[addons/gd-plug/*](https://github.com/imjp94/gd-plug)" by **Tan Jian Ping** licensed under [MIT](https://spdx.org/licenses/MIT.html) -- "[addons/debug_menu/*](https://github.com/godot-extended-libraries/godot-debug-menu)" by **Hugo Locurcio and contributors** licensed under [MIT](https://spdx.org/licenses/MIT.html) -- "[addons/UniversalFade/*](https://github.com/KoBeWi/Godot-Universal-Fade)" by **Tomek** licensed under [MIT](https://spdx.org/licenses/MIT.html) +- "[addons/gd-plug/*](https://github.com/imjp94/gd-plug)" by **Tan Jian Ping** licensed under [MIT](./LICENSES/MIT.txt) +- "[addons/debug_menu/*](https://github.com/godot-extended-libraries/godot-debug-menu)" by **Hugo Locurcio and contributors** licensed under [MIT](./LICENSES/MIT.txt) +- "[addons/UniversalFade/*](https://github.com/KoBeWi/Godot-Universal-Fade)" by **Tomek** licensed under [MIT](./LICENSES/MIT.txt) ## Models -- "[assets/blocks/*](https://github.com/Zylann/marbles)" by **Zylann** licensed under [MIT](https://spdx.org/licenses/MIT.html) +- "[assets/blocks/*](https://github.com/Zylann/marbles)" by **Zylann** licensed under [MIT](./LICENSES/MIT.txt) ## Textures -- "[assets/icons/*](https://icons8.com/)" by **Icons8** licensed under [LicenseRef-linksware](https://spdx.org/licenses/LicenseRef-linksware.html) -- "[assets/marble/*](https://ambientcg.com/view?id=Ground037)" by **Lennart Demes** licensed under [CC0-1.0](https://spdx.org/licenses/CC0-1.0.html) +- "[assets/icons/*](https://icons8.com/)" by **Icons8** licensed under [LicenseRef-linksware](./LICENSES/LicenseRef-linksware.txt) +- "[assets/textures/marble/*](https://ambientcg.com/view?id=Ground037)" by **Lennart Demes** licensed under [CC0-1.0](./LICENSES/CC0-1.0.txt) +- "[assets/textures/wood.jpg](https://github.com/Zylann/marbles)" by **Zylann** licensed under [MIT](./LICENSES/MIT.txt) +## Sounds +- "[assets/sounds/countdown/*](https://opengameart.org/content/countdown)" by **Destructavator** licensed under [CC-BY-3.0](./LICENSES/CC-BY-3.0.txt) +- "[assets/sounds/sfx/*](https://github.com/Zylann/marbles)" by **Zylann** licensed under [CC-BY-NC-ND-1.0](./LICENSES/CC-BY-NC-ND-1.0.txt) ## Fonts -- "[assets/fonts/box_pixies.ttf](https://www.fontspace.com/boxpixies-font-f27657)" by **Heaven Castro** licensed under [CC0-1.0](https://spdx.org/licenses/CC0-1.0.html) +- "[assets/fonts/box_pixies.ttf](https://www.fontspace.com/boxpixies-font-f27657)" by **Heaven Castro** licensed under [CC0-1.0](./LICENSES/CC0-1.0.txt) +## Shaders +- "[shaders/sky.gdshader](https://godotshaders.com/shader/stylized-sky-with-procedural-sun-and-moon/)" by **krzmig** licensed under [MIT](./LICENSES/MIT.txt) diff --git a/Makefile b/Makefile deleted file mode 100644 index 8ecb747..0000000 --- a/Makefile +++ /dev/null @@ -1,95 +0,0 @@ -############# -# Variables # -############# - -GODOT_VERSION := $(shell cat .godot_version) -RELEASE_NAME = stable -SUBDIR = -GODOT_PLATFORM = linux.x86_64 -GODOT_FILENAME = Godot_v${GODOT_VERSION}-${RELEASE_NAME}_${GODOT_PLATFORM} -GODOT_TEMPLATE = Godot_v${GODOT_VERSION}-${RELEASE_NAME}_export_templates.tpz - -GAME_NAME = Marble -GAME_VERSION := $(shell cat .version) - -############# -# Commands # -############# - -mkflower: - mkdir -p .mkflower - mkdir -p .mkflower/build - mkdir -p .mkflower/bin - mkdir -p .mkflower/cache - - touch .mkflower/.gitignore - echo '*' >> .mkflower/.gitignore - - touch .mkflower/.gdignore - -install_godot: mkflower - # curl -X GET "https://downloads.tuxfamily.org/godotengine/${GODOT_VERSION}/SHA512-SUMS.txt" --output .mkflower/cache/SHA512-SUMS.txt - # if [ ! -f ".mkflower/cache/${GODOT_FILENAME}" ] || [ "$(cat .mkflower/cache/SHA512-SUMS.txt | grep ${GODOT_FILENAME} | awk -F'[[:space:]]+' '{print $1}')" != "$(sha256sum .mkflower/cache/${GODOT_FILENAME})" ]; then \ - curl -X GET "https://downloads.tuxfamily.org/godotengine/${GODOT_VERSION}${SUBDIR}/${GODOT_FILENAME}.zip" --output .mkflower/cache/${GODOT_FILENAME}.zip; \ - unzip .mkflower/cache/${GODOT_FILENAME}.zip -d .mkflower/cache/; \ - cp .mkflower/cache/${GODOT_FILENAME} .mkflower/bin/${GODOT_FILENAME}; - # fi - -install_templates: mkflower - curl -X GET "https://downloads.tuxfamily.org/godotengine/${GODOT_VERSION}${SUBDIR}/${GODOT_TEMPLATE}" --output .mkflower/cache/${GODOT_TEMPLATE}; \ - unzip .mkflower/cache/${GODOT_TEMPLATE} -d .mkflower/cache/; \ - mkdir -p ~/.local/share/godot/export_templates/${GODOT_VERSION}.${RELEASE_NAME}; \ - cp .mkflower/cache/templates/* ~/.local/share/godot/export_templates/${GODOT_VERSION}.${RELEASE_NAME}; - -install_addons: - .mkflower/bin/${GODOT_FILENAME} --headless --script plug.gd install || true - -import_resources: - .mkflower/bin/${GODOT_FILENAME} --headless --export-pack null /dev/null - # timeout 60 .mkflower/bin/${GODOT_FILENAME} --editor || true - # .mkflower/bin/${GODOT_FILENAME} --headless --quit --editor - -export_release_linux: - mkdir -p .mkflower/build/linux - .mkflower/bin/${GODOT_FILENAME} --export-release "Linux/X11" --headless .mkflower/build/linux/${GAME_NAME}.x86_64 - (cd .mkflower/build/linux && zip ${GAME_NAME}-linux-v${GAME_VERSION}.zip -r .) - mv .mkflower/build/linux/${GAME_NAME}-linux-v${GAME_VERSION}.zip .mkflower/build/${GAME_NAME}-linux-v${GAME_VERSION}.zip - -export_release_windows: - mkdir -p .mkflower/build/windows - .mkflower/bin/${GODOT_FILENAME} --export-release "Windows Desktop" --headless .mkflower/build/windows/${GAME_NAME}.exe - (cd .mkflower/build/windows && zip ${GAME_NAME}-windows-v${GAME_VERSION}.zip -r .) - mv .mkflower/build/windows/${GAME_NAME}-windows-v${GAME_VERSION}.zip .mkflower/build/${GAME_NAME}-windows-v${GAME_VERSION}.zip - -export_release_mac: - .mkflower/bin/${GODOT_FILENAME} --export-release "macOS" --headless .mkflower/build/${GAME_NAME}-mac-v${GAME_VERSION}.zip - -editor: - .mkflower/bin/${GODOT_FILENAME} --editor - -godot: - .mkflower/bin/${GODOT_FILENAME} $(ARGS) - -run_release: - .mkflower/build/linux/${GAME_NAME}.x86_64 - -clean_mkflower: - rm -rf .mkflower - -clean_godot: - rm -rf .godot - -clean_plug: - rm -rf .plugged - find addons/ -type d -not -name 'addons' -not -name 'gd-plug' -exec rm -rf {} \; || true - -############# -# Playbook # -############# - -clean: clean_mkflower clean_godot clean_plug -build: clean_godot clean_plug install_addons import_resources export_release_linux -run: build run_release - -export_release_all: export_release_linux export_release_mac export_release_windows -ci_build: clean install_godot install_templates install_addons import_resources export_release_all diff --git a/README.md b/README.md index 426ccc2..8137946 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,9 @@ # ⚽ Marble -![Godot Badge](https://img.shields.io/badge/godot-4.1-blue?logo=Godot-Engine&logoColor=white) ![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white) ![license](https://img.shields.io/badge/license-MIT-green?logo=open-source-initiative&logoColor=white) ![reuse](./.reuse/REUSE-compliant.svg) +![Godot Badge](https://img.shields.io/badge/godot-4.1-blue?logo=Godot-Engine&logoColor=white) +![license](https://img.shields.io/badge/license-MIT-green?logo=open-source-initiative&logoColor=white) +![reuse](./.reuse/REUSE-compliant.svg) A marble race minigame, made with [Godot Engine](https://godotengine.org/). @@ -44,6 +46,8 @@ The race is infinite, and the game ends when only one marble remains. ## Contributing +![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg) + We welcome community contributions to this project. Please read our [Contributor Guide](CONTRIBUTING.md) for more information on how to get started. diff --git a/bump_version.sh b/bump_version.sh deleted file mode 100755 index 153c36f..0000000 --- a/bump_version.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/bash -# -# Updates the game version for export (based on the file .version) -# - -game_version=$(cat .version) -datetime=$(date '+%Y%m%d') - -sed -i "s,application/file_version=.*$,application/file_version=\"${game_version}.${datetime}\",g" ./export_presets.cfg -sed -i "s,application/product_version=.*$,application/product_version=\"${game_version}.${datetime}\",g" ./export_presets.cfg -sed -i "s,application/version=.*$,application/version=\"${game_version}\",g" ./export_presets.cfg -sed -i "s,application/short_version=.*$,application/short_version=\"${game_version::-2}\",g" ./export_presets.cfg diff --git a/generate_credits.py b/generate_credits.py deleted file mode 100644 index 46f4cfd..0000000 --- a/generate_credits.py +++ /dev/null @@ -1,62 +0,0 @@ -import os -from string import Template - - -def main(): - template = Template(( - '- "[$files]($source)" by **$author** licensed' - ' under [$license](https://spdx.org/licenses/$license.html)\n' - )) - - deps = {} - section = None - - with open(".reuse/dep5", "r") as file: - for line in file: - if line.startswith('# '): - section = line[len("# "): -1].lower() - - if section is None: - continue - - if line.startswith("Files: "): - if section not in deps: - deps[section] = [] - - deps[section].append({"files": line[len("Files: "):-1]}) - - elif line.startswith("Copyright: "): - if section not in deps: - deps[section] = [] - - date_author = line[len("Copyright: "):-1].split(" ") - date_author.pop(0) - deps[section][-1]["author"] = " ".join(date_author) - - elif line.startswith("License: "): - if section not in deps: - deps[section] = [] - - deps[section][-1]["license"] = line[len("License: "):-1] - - elif line.startswith("Source: "): - if section not in deps: - deps[section] = [] - - deps[section][-1]["source"] = line[len("Source: "):-1] - - if deps: - with open("CREDITS.md", "w") as file: - file.writelines("# Credits\n\n") - - for key, value in deps.items(): - file.writelines(f"## {key.title()}\n") - for dep in value: - file.writelines(template.substitute(**dep)) - else: - if os.path.exists("CREDITS.md"): - os.remove("CREDITS.md") - - -if __name__ == "__main__": - main() diff --git a/public/packaging/flatpak/org.mechanicalflower.Marble.json b/public/packaging/flatpak/org.mechanicalflower.Marble.json index 92d344b..621959b 100644 --- a/public/packaging/flatpak/org.mechanicalflower.Marble.json +++ b/public/packaging/flatpak/org.mechanicalflower.Marble.json @@ -29,28 +29,28 @@ "sources": [ { "type": "archive", - "url": "https://github.com/MechanicalFlower/marble/releases/download/v0.1.0/Marble_v0.1.0_Linux_64.zip", + "url": "https://github.com/MechanicalFlower/Marble/releases/download/1.4.1/Marble-linux-v1.4.1.zip", "sha512": "bf1fee8b8b86941ea289a287db65cdeaca729c675c148d9b0c2a851a0ab0b2dddd7106a2975518c6cedb515b5d084e07f9e8f39a65e52ffbe29d84c99a2f4e51", "strip-components": 0 }, { "type": "file", - "path": "https://raw.githubusercontent.com/MechanicalFlower/marble/master/public/packaging/flatpak/marble-wrapper.sh", + "path": "https://raw.githubusercontent.com/MechanicalFlower/marble/1.4.1/public/packaging/flatpak/marble-wrapper.sh", "sha512": "f1fac6f1e154f935df9aaf6b554cc7d4e12692e3d29f3d6c502170cd84055c5392a37f1d58ab70355248b445a6285fd77cfa49f0ec498dd43d912cae75190653" }, { "type": "file", - "url": "https://raw.githubusercontent.com/MechanicalFlower/marble/master/public/publishing/marble_cover.png", + "url": "https://raw.githubusercontent.com/MechanicalFlower/marble/1.4.1/public/publishing/marble_cover.png", "sha512": "85176d840093ff9dc4782067c1f30ea5b512406a6ab7b7c76a0ee010fbb7c34771bffdfbe30665192ed685769883a67ef460116f20da0f1b56f270b6e5ab2e4e" }, { "type": "file", - "url": "https://raw.githubusercontent.com/MechanicalFlower/marble/master/public/packaging/flatpak/org.mechanicalflower.Marble.metainfo.xml", + "url": "https://raw.githubusercontent.com/MechanicalFlower/marble/1.4.1/public/packaging/flatpak/org.mechanicalflower.Marble.metainfo.xml", "sha512": "c738849b274775ebf499926de6bac177c5185cd96ab7d90fa4ad0a4281f07a584181d0f95ea8bade5e49389bf9ded7fce3f3a153c27c65e2266d2fd6ef6750ee" }, { "type": "file", - "url": "https://raw.githubusercontent.com/MechanicalFlower/marble/master/public/packaging/org.mechanicalflower.Marble.desktop", + "url": "https://raw.githubusercontent.com/MechanicalFlower/marble/1.4.1/public/packaging/org.mechanicalflower.Marble.desktop", "sha512": "f76c170e71658316b72c614e0112a04880d4d0e1acca280d8d07ce9ab6014f8b9ba3456defb848a41da8310fef19f304e368de83fc7f79eac2d67861f4871e2b" } ]