97 Commits

Author SHA1 Message Date
75fb76ef03 Merge pull request 'test release' (#5) from main into release
All checks were successful
Build Release / Linux Export (push) Successful in 2m8s
Build Release / Windows Export (push) Successful in 2m43s
Build Release / Create Release (push) Successful in 1m59s
Reviewed-on: #5
2026-03-18 00:06:21 +01:00
36ca9ba5ea fix
All checks were successful
Build Release / Linux Export (pull_request) Successful in 2m8s
Build Release / Windows Export (pull_request) Successful in 2m44s
Build Release / Create Release (pull_request) Successful in 1m59s
2026-03-18 00:05:41 +01:00
172fc7669b fixed some problme
Some checks failed
Build Release / Linux Export (pull_request) Successful in 2m8s
Build Release / Windows Export (pull_request) Successful in 2m43s
Build Release / Create Release (pull_request) Failing after 2m2s
2026-03-18 00:03:01 +01:00
0a92f7b461 feat: added version to zip
Some checks failed
Build Release / Linux Export (pull_request) Successful in 2m9s
Build Release / Windows Export (pull_request) Successful in 2m43s
Build Release / Create Release (pull_request) Failing after 1m55s
2026-03-17 23:58:46 +01:00
d03874f5e7 fix: zipping exports
Some checks failed
Build Release / Linux Export (pull_request) Successful in 2m9s
Build Release / Windows Export (pull_request) Successful in 2m42s
Build Release / Create Release (pull_request) Has been cancelled
2026-03-17 23:57:51 +01:00
987e4300ab chore: improved artefact upload on relaes
All checks were successful
Build Release / Linux Export (pull_request) Successful in 2m9s
Build Release / Windows Export (pull_request) Successful in 2m51s
Build Release / Create Release (pull_request) Successful in 2m2s
2026-03-17 23:52:42 +01:00
991f9f4bec chore: exporting build files
All checks were successful
Build Release / Linux Export (pull_request) Successful in 2m8s
Build Release / Windows Export (pull_request) Successful in 2m50s
Build Release / Create Release (pull_request) Successful in 1m49s
2026-03-17 23:43:04 +01:00
5c35a1beed fixed linux build
All checks were successful
Build Release / Linux Export (pull_request) Successful in 2m8s
Build Release / Windows Export (pull_request) Successful in 2m46s
Build Release / Create Release (pull_request) Successful in 1m49s
2026-03-17 23:36:44 +01:00
86274ab1bf added linux build
Some checks failed
Build Release / Linux Export (pull_request) Failing after 2m1s
Build Release / Windows Export (pull_request) Successful in 2m42s
Build Release / Create Release (pull_request) Has been skipped
2026-03-17 23:33:41 +01:00
248496db91 chore: fixed pipfall
Some checks failed
Build Release / Linux Export (pull_request) Failing after 1m44s
Build Release / Windows Export (pull_request) Successful in 2m48s
Build Release / Create Release (pull_request) Has been skipped
2026-03-17 23:30:11 +01:00
926a1e8aa0 chore: added blender to build
Some checks failed
Build Release / Linux Export (pull_request) Failing after 1m44s
Build Release / Windows Export (pull_request) Failing after 2m31s
Build Release / Create Release (pull_request) Has been skipped
2026-03-17 23:27:53 +01:00
71e37b0b55 chore: added missing blender in path
Some checks failed
Build Release / Windows Export (pull_request) Failing after 2m5s
Build Release / Create Release (pull_request) Has been skipped
2026-03-17 23:12:38 +01:00
81dca211b5 chore: added checkout 2026-03-17 22:54:31 +01:00
f16838c81c chore lovered version aing
Some checks failed
Build Release / Windows Export (pull_request) Successful in 2m14s
Build Release / Linux Export (pull_request) Successful in 2m16s
Build Release / Create Release (pull_request) Failing after 1m47s
2026-03-17 22:52:32 +01:00
0d14d27a0b chore: reduce upload artifact version, removed mac
Some checks failed
Build Release / Windows Export (pull_request) Failing after 2m14s
Build Release / Linux Export (pull_request) Failing after 2m21s
Build Release / Create Release (pull_request) Has been skipped
2026-03-17 22:50:20 +01:00
3c619c9613 fix: fixed never ending job
Some checks failed
Build Release / Windows Export (pull_request) Failing after 2m4s
Build Release / Mac Export (pull_request) Failing after 2m4s
Build Release / Linux Export (pull_request) Failing after 2m5s
Build Release / Create Release (pull_request) Has been skipped
2026-03-17 22:47:50 +01:00
fd52dc9c1c chore: fixed version of godot
Some checks failed
Build Release / Create Release (pull_request) Has been cancelled
Build Release / Windows Export (pull_request) Has been cancelled
Build Release / Linux Export (pull_request) Has been cancelled
Build Release / Mac Export (pull_request) Has been cancelled
2026-03-17 22:45:10 +01:00
40d8d8753d chore: import projekt bevor export
Some checks failed
Build Release / Create Release (pull_request) Has been cancelled
Build Release / Linux Export (pull_request) Has been cancelled
Build Release / Windows Export (pull_request) Has been cancelled
Build Release / Mac Export (pull_request) Has been cancelled
2026-03-17 22:39:39 +01:00
051c822bd5 test
Some checks failed
Build Release / Create Release (pull_request) Has been cancelled
Build Release / Linux Export (pull_request) Has been cancelled
Build Release / Mac Export (pull_request) Has been cancelled
Build Release / Windows Export (pull_request) Has been cancelled
2026-03-17 22:35:24 +01:00
3ab31fe40b test
Some checks failed
Build Release / Linux Export (pull_request) Failing after 1m47s
Build Release / Mac Export (pull_request) Failing after 1m46s
Build Release / Create Release (pull_request) Has been cancelled
Build Release / Windows Export (pull_request) Has been cancelled
2026-03-17 22:25:56 +01:00
376c1b5225 test
Some checks failed
Build Release / Mac Export (pull_request) Failing after 1m46s
Build Release / Linux Export (pull_request) Failing after 1m48s
Build Release / Windows Export (pull_request) Failing after 2m4s
Build Release / Create Release (pull_request) Has been skipped
2026-03-17 22:20:53 +01:00
03787a82fc fix: standardize runner images to use ubuntu-24.04 for all export jobs
Some checks failed
Build Release / Windows Export (pull_request) Failing after 1m47s
Build Release / Linux Export (pull_request) Failing after 2m2s
Build Release / Mac Export (pull_request) Failing after 2m3s
Build Release / Create Release (pull_request) Has been skipped
2026-03-17 22:19:46 +01:00
bc9f0b9f27 fix: downgrade actions/checkout to v4 and enable progress display for all export jobs
Some checks failed
Build Release / Windows Export (pull_request) Failing after 1m54s
Build Release / Linux Export (pull_request) Failing after 1m53s
Build Release / Mac Export (pull_request) Failing after 1m52s
Build Release / Create Release (pull_request) Has been skipped
2026-03-17 22:17:01 +01:00
1aa0dbf544 fix: update runner images to use official ubuntu-24.04-github for export jobs
Some checks failed
Build Release / Windows Export (pull_request) Failing after 2m3s
Build Release / Linux Export (pull_request) Failing after 2m2s
Build Release / Mac Export (pull_request) Failing after 2m1s
Build Release / Create Release (pull_request) Has been skipped
2026-03-17 22:10:50 +01:00
ebe34e1750 fix: remove redundant Node installation steps from export jobs in release workflow
Some checks failed
Build Release / Windows Export (pull_request) Has been cancelled
Build Release / Linux Export (pull_request) Has been cancelled
Build Release / Mac Export (pull_request) Has been cancelled
Build Release / Create Release (pull_request) Has been cancelled
2026-03-17 21:52:18 +01:00
c9743d65b7 fix: update runner images for Windows, Linux, and Mac export jobs in release workflow 2026-03-17 21:51:52 +01:00
70c407b5f9 fix: streamline Node installation steps in export jobs for all platforms
Some checks failed
Build Release / Windows Export (pull_request) Failing after 1m50s
Build Release / Linux Export (pull_request) Failing after 1m51s
Build Release / Mac Export (pull_request) Failing after 1m50s
Build Release / Create Release (pull_request) Has been skipped
2026-03-17 21:50:08 +01:00
aa6ac812cf fix: simplify container definition for export jobs in release workflow
Some checks failed
Build Release / Windows Export (pull_request) Failing after 1m46s
Build Release / Mac Export (pull_request) Failing after 1m46s
Build Release / Linux Export (pull_request) Failing after 1m47s
Build Release / Create Release (pull_request) Has been skipped
2026-03-17 21:44:29 +01:00
a34ca8af46 fix: update checkout action to v6 in export jobs
Some checks failed
Build Release / Windows Export (pull_request) Failing after 1m46s
Build Release / Linux Export (pull_request) Failing after 1m47s
Build Release / Mac Export (pull_request) Failing after 1m46s
Build Release / Create Release (pull_request) Has been skipped
2026-03-17 21:40:16 +01:00
72601467e4 fix: add nodejs and npm installation to setup steps for all export jobs
Some checks failed
Build Release / Windows Export (pull_request) Failing after 1m46s
Build Release / Linux Export (pull_request) Failing after 1m46s
Build Release / Mac Export (pull_request) Failing after 1m46s
Build Release / Create Release (pull_request) Has been skipped
2026-03-17 21:39:00 +01:00
7d9d107d65 fix: refactor release workflow to support separate export jobs for Windows, Linux, and Mac
Some checks failed
Build Release / Windows Export (pull_request) Failing after 1m51s
Build Release / Linux Export (pull_request) Failing after 1m51s
Build Release / Mac Export (pull_request) Failing after 1m52s
2026-03-17 20:53:59 +01:00
ef8e3d7d15 fix: refactor release workflow to streamline export process and update platform configuration
Some checks failed
Build Release / Export (windows) (pull_request) Failing after 2m27s
2026-03-17 20:47:01 +01:00
c287fd8404 fix: remove unnecessary build path normalization and output steps
Some checks failed
Build Release / build (Linux/X11) (pull_request) Failing after 2m37s
Build Release / build (Web) (pull_request) Failing after 2m36s
Build Release / build (Windows) (pull_request) Failing after 2m22s
2026-03-16 22:55:21 +01:00
2c3b9e458d fix: correct formatting in build output message and fix token line in release action 2026-03-16 22:54:17 +01:00
9322a8f723 fix: improve build path normalization and output logging 2026-03-16 22:52:01 +01:00
191f94892b fix: remove build path normalization step and update artifact upload parameters
Some checks failed
Build Release / build (Linux/X11) (pull_request) Failing after 2m28s
Build Release / build (Web) (pull_request) Failing after 2m33s
Build Release / build (Windows) (pull_request) Failing after 2m17s
2026-03-16 22:40:34 +01:00
7dfdd4c2c8 fix: enhance build path normalization to check for existence of build directory
Some checks failed
Build Release / build (Windows) (pull_request) Failing after 2m33s
Build Release / build (Web) (pull_request) Failing after 2m43s
Build Release / build (Linux/X11) (pull_request) Failing after 2m45s
2026-03-16 22:34:49 +01:00
fbfa81b9aa fix: update release action parameters to correctly reference changelog outputs
Some checks failed
Build Release / build (Linux/X11) (pull_request) Successful in 2m36s
Build Release / build (Web) (pull_request) Failing after 2m44s
Build Release / build (Windows) (pull_request) Failing after 2m45s
2026-03-16 22:30:32 +01:00
6370bb5b09 fix: enhance CHANGELOG extraction to include body and trim empty lines
Some checks failed
Build Release / build (Linux/X11) (pull_request) Successful in 2m40s
Build Release / build (Windows) (pull_request) Failing after 2m41s
Build Release / build (Web) (pull_request) Failing after 2m42s
2026-03-16 22:25:23 +01:00
751a3b1a17 fix: correct formatting for release action parameters in workflow
Some checks failed
Build Release / build (Linux/X11) (pull_request) Failing after 2m27s
Build Release / build (Web) (pull_request) Failing after 2m36s
Build Release / build (Windows) (pull_request) Failing after 2m17s
2026-03-16 22:19:57 +01:00
3aa520203e fix: update release action to include formatted release name and description
Some checks failed
Build Release / build (Web) (pull_request) Failing after 2m30s
Build Release / build (Windows) (pull_request) Failing after 2m42s
Build Release / build (Linux/X11) (pull_request) Failing after 2m51s
2026-03-16 22:15:03 +01:00
4a27ae75d3 test
Some checks failed
Build Release / build (Web) (pull_request) Failing after 2m36s
Build Release / build (Linux/X11) (pull_request) Failing after 2m41s
Build Release / build (Windows) (pull_request) Failing after 2m44s
2026-03-16 22:10:04 +01:00
756281ab0b fix: update server_url reference to use vars in release workflow
Some checks failed
Build Release / build (Linux/X11) (pull_request) Failing after 2m36s
Build Release / build (Web) (pull_request) Failing after 2m41s
Build Release / build (Windows) (pull_request) Failing after 2m42s
2026-03-16 22:07:52 +01:00
651abb6fef fix: correct artifact upload path in release workflow
Some checks failed
Build Release / build (Web) (pull_request) Failing after 2m29s
Build Release / build (Linux/X11) (pull_request) Failing after 2m34s
Build Release / build (Windows) (pull_request) Failing after 2m19s
2026-03-16 22:02:23 +01:00
6b91985c84 fix: update build action to normalize build path and use correct output for uploads
Some checks failed
Build Release / build (Web) (pull_request) Failing after 2m31s
Build Release / build (Linux/X11) (pull_request) Failing after 2m35s
Build Release / build (Windows) (pull_request) Failing after 3m6s
2026-03-16 20:44:29 +01:00
b58012bb90 fix: add EXPORT_DIR parameter to build action configuration 2026-03-16 20:40:49 +01:00
b983f41f75 fix: update build action reference to correct repository
Some checks failed
Build Release / build (Web) (pull_request) Failing after 2m58s
Build Release / build (Linux/X11) (pull_request) Failing after 3m18s
Build Release / build (Windows) (pull_request) Failing after 2m27s
2026-03-16 20:33:16 +01:00
d788285d18 test
Some checks failed
Build Release / build (Web) (pull_request) Failing after 12m36s
Build Release / build (Linux/X11) (pull_request) Failing after 16m5s
Build Release / build (Windows) (pull_request) Failing after 11m21s
2026-03-15 23:21:16 +01:00
4a6703f79a fix: update build action to use specific fork of godot-build-action
Some checks failed
Build Release / build (Linux/X11) (pull_request) Failing after 1m39s
Build Release / build (Web) (pull_request) Failing after 1m33s
Build Release / build (Windows) (pull_request) Failing after 1m33s
2026-03-15 23:00:46 +01:00
560b04bba2 fix: update exclude_filter for Web and Linux presets to exclude .blend files 2026-03-15 22:44:51 +01:00
7522d45bbd fix: add Blender support for Android and Web platforms in project configuration
Some checks failed
Build Release / build (Linux/X11) (pull_request) Failing after 2m10s
Build Release / build (Web) (pull_request) Failing after 2m10s
Build Release / build (Windows) (pull_request) Failing after 2m11s
2026-03-15 22:38:11 +01:00
80c905bcef fix: update export presets to use Windows, Linux, and Web platforms
Some checks failed
Build Release / build (Linux/X11) (pull_request) Failing after 2m11s
Build Release / build (Web) (pull_request) Failing after 2m11s
Build Release / build (Windows) (pull_request) Failing after 2m10s
2026-03-15 22:31:44 +01:00
ba84004adc fix: update export presets for Web, Linux, and Windows platforms with new configurations 2026-03-15 22:31:38 +01:00
966951654a fix: add INSTALL_BLENDER parameter to build action in release workflow
Some checks failed
Build Release / build (Linux/X11) (pull_request) Failing after 2m11s
Build Release / build (Windows Desktop) (pull_request) Failing after 2m11s
Build Release / build (macOS) (pull_request) Failing after 2m10s
2026-03-15 22:28:33 +01:00
905c2d7666 fix: improve version extraction logic in release workflow
Some checks failed
Build Release / build (Linux/X11) (pull_request) Failing after 2m21s
Build Release / build (Windows Desktop) (pull_request) Failing after 2m11s
Build Release / build (macOS) (pull_request) Failing after 2m11s
2026-03-15 22:26:29 +01:00
de51310f94 fix: replace release-drafter with custom version extraction in release workflow
Some checks failed
Build Release / build (Linux/X11) (pull_request) Failing after 1m36s
Build Release / build (Windows Desktop) (pull_request) Failing after 1m37s
Build Release / build (macOS) (pull_request) Failing after 1m37s
2026-03-15 22:22:35 +01:00
82e3ca5182 fix: remove GHE_HOST setup step and use SERVER_URL directly in release workflow
Some checks failed
Build Release / build (Linux/X11) (pull_request) Failing after 1m39s
Build Release / build (Windows Desktop) (pull_request) Failing after 1m38s
Build Release / build (macOS) (pull_request) Failing after 1m38s
2026-03-15 22:20:28 +01:00
d8f6478b18 fix: set GHE_HOST environment variable in release workflow
Some checks failed
Build Release / build (Linux/X11) (pull_request) Failing after 1m38s
Build Release / build (Windows Desktop) (pull_request) Failing after 1m38s
Build Release / build (macOS) (pull_request) Failing after 1m38s
2026-03-15 22:18:11 +01:00
8ae9b00b5a fix: update token usage in release workflow to use GITEA_TOKEN
Some checks failed
Build Release / build (Linux/X11) (pull_request) Failing after 1m39s
Build Release / build (Windows Desktop) (pull_request) Failing after 1m39s
Build Release / build (macOS) (pull_request) Failing after 1m38s
2026-03-15 22:11:47 +01:00
aa4a8e9fb3 fix: update actions/checkout to version 6 and adjust token usage in release workflow
Some checks failed
Build Release / build (Windows Desktop) (pull_request) Has been cancelled
Build Release / build (macOS) (pull_request) Has been cancelled
Build Release / build (Linux/X11) (pull_request) Has been cancelled
2026-03-15 22:10:35 +01:00
ef88e5e91d fix: update GITHUB_TOKEN to use ACTIONS_TOKEN in release workflow
Some checks failed
Build Release / build (Windows Desktop) (pull_request) Has been cancelled
Build Release / build (macOS) (pull_request) Has been cancelled
Build Release / build (Linux/X11) (pull_request) Has been cancelled
2026-03-15 22:06:25 +01:00
075521b991 fix: update godot-build-action to version 1.3.1
Some checks failed
Build Release / build (Linux/X11) (pull_request) Failing after 2m25s
Build Release / build (Windows Desktop) (pull_request) Failing after 1m39s
Build Release / build (macOS) (pull_request) Failing after 1m39s
2026-03-15 22:02:54 +01:00
99b2a8bbe3 Merge pull request 'feat(resource-test)-an-ui-test' (#4) from feat(resource-test)-an-ui-test into main
Some checks failed
Build Release / build (Linux/X11) (push) Failing after 2m9s
Build Release / build (Windows Desktop) (push) Failing after 1m33s
Build Release / build (macOS) (push) Failing after 1m34s
Build Release / build (Linux/X11) (pull_request) Failing after 1m34s
Build Release / build (Windows Desktop) (pull_request) Failing after 1m34s
Build Release / build (macOS) (pull_request) Failing after 1m34s
Reviewed-on: #4
2026-03-15 21:56:10 +01:00
11dd732cd0 chore: added server url as variable
All checks were successful
Coding Quality / Build and analyze (pull_request) Successful in 1m44s
2026-03-15 21:55:34 +01:00
3bbefa9647 feat: first draft of release workflow 2026-03-15 21:51:53 +01:00
e7e628992a feat: added changelog 2026-03-15 21:51:27 +01:00
de01511619 fix: changed name of quit component 2026-03-15 21:14:14 +01:00
aae15b0b50 chore: added exit button to game 2026-03-15 21:12:16 +01:00
80f2860ba1 feat: added release pipline 2026-03-15 21:05:23 +01:00
9c806e5a3e chore: added mouse concept 2026-03-15 20:58:50 +01:00
f2fb6bb2e6 feat: created basic mouse and keyboard movement 2026-03-15 20:58:07 +01:00
0e5093bb30 chore: saved changes in scene 2026-03-08 22:31:04 +01:00
01a8d44a29 feat: prepared new game scene 2026-03-08 22:26:25 +01:00
f25aec14c8 feat: added new scene 2026-03-08 21:56:51 +01:00
8b56427870 feat: importet new resources 2026-03-08 21:55:26 +01:00
b94d92034d Merge pull request 'chore: removed demo aciont' (#3) from feat(sonar-integration) into main
Reviewed-on: #3
2026-03-08 13:04:33 +01:00
fc17fe781f Delete .sonarlint/Experements.json
All checks were successful
Coding Quality / Build and analyze (pull_request) Successful in 1m0s
2026-03-08 13:00:58 +01:00
8cc5b66281 chore: ignoring sonarlint files
All checks were successful
Coding Quality / Build and analyze (pull_request) Successful in 1m0s
2026-03-08 13:01:24 +01:00
aef1db2e9a chore: added sonar metadata
Some checks failed
Coding Quality / Build and analyze (pull_request) Failing after 57s
2026-03-08 12:40:51 +01:00
789c4cf2c9 chore: changed runner on pull request
Some checks failed
Coding Quality / Build and analyze (pull_request) Failing after 57s
2026-03-08 12:35:28 +01:00
755d228902 Merge branch 'main' into feat(sonar-integration) 2026-03-08 12:33:15 +01:00
66ddd5723c chore: removed demo aciont 2026-03-08 12:32:57 +01:00
d8b69d6008 Merge pull request 'feat(sonar-integration)' (#2) from feat(sonar-integration) into main
Some checks failed
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 51s
Coding Quality / Build and analyze (push) Failing after 58s
Reviewed-on: #2
2026-03-08 12:29:26 +01:00
c4d96929eb chore: new imported assets
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 55s
2026-03-08 12:29:25 +01:00
0822f46397 feat: added sona quality controll
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 57s
2026-03-08 12:25:22 +01:00
780c57575c Merge pull request 'feat-main-menu' (#1) from feat-main-menu into main
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 54s
Reviewed-on: #1
2026-03-08 11:35:39 +01:00
8ddb818c27 Merge branch 'main' into feat-main-menu
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 1m15s
2026-03-08 11:35:18 +01:00
c654bcb769 chore: prepared new prototype game 2026-03-08 11:35:33 +01:00
9e634d704d chore: ignoring .idea folder 2026-03-08 11:34:16 +01:00
6f0604b1fe fix:: removed whitespace 2025-12-23 12:06:50 +01:00
31eca0b1ca feat: added export config for web 2025-12-23 12:02:24 +01:00
f6f37db335 feat: ignoerd dist folder 2025-12-23 11:46:08 +01:00
38102f57ef feat: added input update to ui 2025-12-23 11:43:07 +01:00
45ccd0bedb feat: added pid calculation and better ui 2025-12-23 00:29:18 +01:00
f41b760208 feat: saved changes to pid_test 2025-12-22 18:15:43 +01:00
ba142a3fac feat: added geometry and startet the button 2025-12-22 18:14:44 +01:00
4e6968ddb1 feat: added back to main menue 2025-12-22 15:29:26 +01:00
31 changed files with 1188 additions and 30 deletions

View File

@@ -1,19 +0,0 @@
name: Gitea Actions Demo
run-name: ${{ gitea.actor }} is testing out Gitea Actions 🚀
on: [push]
jobs:
Explore-Gitea-Actions:
runs-on: ubuntu-latest
steps:
- run: echo "🎉 The job was automatically triggered by a ${{ gitea.event_name }} event."
- run: echo "🐧 This job is now running on a ${{ runner.os }} server hosted by Gitea!"
- run: echo "🔎 The name of your branch is ${{ gitea.ref }} and your repository is ${{ gitea.repository }}."
- name: Check out repository code
uses: actions/checkout@v4
- run: echo "💡 The ${{ gitea.repository }} repository has been cloned to the runner."
- run: echo "🖥️ The workflow is now ready to test your code on the runner."
- name: List files in the repository
run: |
ls ${{ gitea.workspace }}
- run: echo "🍏 This job's status is ${{ job.status }}."

View File

@@ -0,0 +1,202 @@
name: Build Release
on:
push:
branches: [release]
pull_request:
branches: [release]
env:
GODOT_VERSION: 4.6.1
EXPORT_NAME: Experements
PROJECT_PATH: .
BLENDER_VERSION: 5.0.0
jobs:
export-windows:
name: Windows Export
runs-on: ubuntu-24.04 # Use 24.04 with godot 4
container: barichello/godot-ci:4.6
steps:
- name: Update and install dependencies
run: |
apt-get update
apt-get install -y curl gnupg
apt-get install -y blender
- name: Install Node.js
run: |
curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
apt-get install -y nodejs
- name: Checkout
uses: actions/checkout@v4
with:
lfs: true
- name: Setup
shell: bash
run: |
set -Eeuo pipefail
BLENDER_PATH="/usr/bin/blender"
mkdir -pv ~/.config/godot
mkdir -pv ~/.local/share/godot/export_templates/
GODOT_CFG="$(find ~/.config/godot -name "editor_settings-*.tres" | head -n 1 || true)"
if [ -z "$GODOT_CFG" ]; then
echo "# Missing Godot editor settings" > "$GODOT_CFG"
exit 1
fi
# Set the Blender path
if [ -n "${BLENDER_PATH:-}" ]; then
if grep -q '^filesystem/import/blender/blender_path' "$GODOT_CFG"; then
# Replace existing path
sed -i "s|^filesystem/import/blender/blender_path = .*|filesystem/import/blender/blender_path = \"$BLENDER_PATH\"|" "$GODOT_CFG"
else
# Append new path
echo "filesystem/import/blender/blender_path = \"$BLENDER_PATH\"" >> "$GODOT_CFG"
fi
fi
echo "Blender path configured in $GODOT_CFG"
- name: Windows Build
shell: bash
run: |
set -Eeuo pipefail
mkdir -v -p build/windows
EXPORT_DIR="$(readlink -f build)"
cd $PROJECT_PATH
godot --headless --export-release "Windows" "$EXPORT_DIR/windows/$EXPORT_NAME.exe"
- name: Upload Artifact
uses: actions/upload-artifact@v3
with:
name: windows
path: build/windows
export-linux:
name: Linux Export
runs-on: ubuntu-24.04 # Use 24.04 with godot 4
container: barichello/godot-ci:4.6
steps:
- name: Update and install dependencies
run: |
apt-get update
apt-get install -y curl gnupg
- name: Install Node.js
run: |
curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
apt-get install -y nodejs
- name: Checkout
uses: actions/checkout@v4
with:
lfs: true
- name: Setup
shell: bash
run: |
set -Eeuo pipefail
BLENDER_PATH="/usr/bin/blender"
mkdir -pv ~/.config/godot
mkdir -pv ~/.local/share/godot/export_templates/
GODOT_CFG="$(find ~/.config/godot -name "editor_settings-*.tres" | head -n 1 || true)"
if [ -z "$GODOT_CFG" ]; then
echo "# Missing Godot editor settings" > "$GODOT_CFG"
exit 1
fi
# Set the Blender path
if [ -n "${BLENDER_PATH:-}" ]; then
if grep -q '^filesystem/import/blender/blender_path' "$GODOT_CFG"; then
# Replace existing path
sed -i "s|^filesystem/import/blender/blender_path = .*|filesystem/import/blender/blender_path = \"$BLENDER_PATH\"|" "$GODOT_CFG"
else
# Append new path
echo "filesystem/import/blender/blender_path = \"$BLENDER_PATH\"" >> "$GODOT_CFG"
fi
fi
echo "Blender path configured in $GODOT_CFG"
- name: Linux Build
shell: bash
run: |
set -Eeuo pipefail
mkdir -v -p build/linux
EXPORT_DIR="$(readlink -f build)"
cd $PROJECT_PATH
godot --headless --export-release "Linux/X11" "$EXPORT_DIR/linux/$EXPORT_NAME.x86_64"
- name: Upload Artifact
uses: actions/upload-artifact@v3
with:
name: linux
path: build/linux
create-release:
name: Create Release
runs-on: ubuntu-latest
needs: [export-linux, export-windows]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Download Windows Artifact
uses: actions/download-artifact@v3
with:
name: windows
path: build/windows
- name: Download Linux Artifact
uses: actions/download-artifact@v3
with:
name: linux
path: build/linux
- name: Extract version and body from CHANGELOG
id: changelog
run: |
# Extract the latest released version (skip Unreleased)
LATEST=$(grep -E '^## \[[0-9]+\.[0-9]+\.[0-9]+\]' CHANGELOG.md | head -n1 | sed -E 's/^## \[([0-9]+\.[0-9]+\.[0-9]+)\].*/\1/')
if [ -z "$LATEST" ]; then
echo "No released version found in CHANGELOG.md"
exit 1
fi
echo "Released version found: $LATEST"
echo "version=$LATEST" >> $GITHUB_OUTPUT
# Extract the body: lines until the next ## header
BODY=$(awk -v ver="$LATEST" '
$0 ~ "^## \\[" ver "\\]" {found=1; next}
found && $0 ~ "^## \\[" {exit}
found {print}
' CHANGELOG.md)
# Trim leading/trailing empty lines
BODY=$(echo "$BODY" | sed '/^\s*$/d')
# Output body safely for GitHub Actions
echo "body<<EOF" >> $GITHUB_OUTPUT
echo "$BODY" >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
- name: Zipping exports
run: |
zip -r windows-${{ steps.changelog.outputs.version }}.zip build/windows
zip -r linux-${{ steps.changelog.outputs.version }}.zip build/linux
- name: Create Release
uses: akkuman/gitea-release-action@v1
with:
server_url: ${{ vars.SERVER_URL }}
tag_name: ${{ steps.changelog.outputs.version }}
name: "${{ steps.changelog.outputs.version }}"
body: ${{ steps.changelog.outputs.body }}
draft: false
token: ${{ secrets.GITEA_TOKEN }}
files: |
windows-${{ steps.changelog.outputs.version }}.zip
linux-${{ steps.changelog.outputs.version }}.zip

View File

@@ -0,0 +1,30 @@
name: Coding Quality
on:
pull_request:
branches:
- main
jobs:
coding_quality:
name: Build and analyze
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
- uses: SonarSource/sonarqube-scan-action@v6
env:
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
SONAR_HOST_URL: ${{ secrets.SONAR_HOST_URL }}
with:
args: >
-Dsonar.projectKey=${{ secrets.SONAR_PROJECT_KEY }}
# If you wish to fail your job when the Quality Gate is red, uncomment the
# following lines. This would typically be used to fail a deployment.
# - uses: SonarSource/sonarqube-quality-gate-action@v1
# timeout-minutes: 5
# env:
# SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}

3
.gitignore vendored
View File

@@ -1,3 +1,6 @@
# Godot 4+ specific ignores # Godot 4+ specific ignores
.idea/
.godot/ .godot/
/android/ /android/
/dist/
.sonarlint

Binary file not shown.

View File

@@ -0,0 +1,42 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://b8yyluxikhlr0"
path="res://.godot/imported/PID_Spinning_Stuff.glb-977aece4b561e834c064e6c1c7e53471.scn"
[deps]
source_file="res://Assets/PID_Spinning_Stuff.glb"
dest_files=["res://.godot/imported/PID_Spinning_Stuff.glb-977aece4b561e834c064e6c1c7e53471.scn"]
[params]
nodes/root_type=""
nodes/root_name=""
nodes/root_script=null
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_name_suffixes=true
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
materials/extract=0
materials/extract_format=0
materials/extract_path=""
_subresources={}
gltf/naming_version=2
gltf/embedded_image_handling=1

Binary file not shown.

View File

@@ -0,0 +1,42 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://cin3pgpeydkpe"
path="res://.godot/imported/PID_Spinning_Target.glb-739e3becae2412e2332407d1fc9f1fc7.scn"
[deps]
source_file="res://Assets/PID_Spinning_Target.glb"
dest_files=["res://.godot/imported/PID_Spinning_Target.glb-739e3becae2412e2332407d1fc9f1fc7.scn"]
[params]
nodes/root_type=""
nodes/root_name=""
nodes/root_script=null
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_name_suffixes=true
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
materials/extract=0
materials/extract_format=0
materials/extract_path=""
_subresources={}
gltf/naming_version=2
gltf/embedded_image_handling=1

BIN
Assets/PID_Test_Obj.blend Normal file

Binary file not shown.

View File

@@ -0,0 +1,60 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://c8ywajojvb7pw"
path="res://.godot/imported/PID_Test_Obj.blend-06d5e64216d0d8667c2f9c3cb6d12c34.scn"
[deps]
source_file="res://Assets/PID_Test_Obj.blend"
dest_files=["res://.godot/imported/PID_Test_Obj.blend-06d5e64216d0d8667c2f9c3cb6d12c34.scn"]
[params]
nodes/root_type=""
nodes/root_name=""
nodes/root_script=null
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_name_suffixes=true
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
materials/extract=0
materials/extract_format=0
materials/extract_path=""
_subresources={}
blender/nodes/visible=0
blender/nodes/active_collection_only=false
blender/nodes/punctual_lights=true
blender/nodes/cameras=true
blender/nodes/custom_properties=true
blender/nodes/modifiers=1
blender/meshes/colors=false
blender/meshes/uvs=true
blender/meshes/normals=true
blender/meshes/export_geometry_nodes_instances=false
blender/meshes/gpu_instances=false
blender/meshes/tangents=true
blender/meshes/skins=2
blender/meshes/export_bones_deforming_mesh_only=false
blender/materials/unpack_enabled=true
blender/materials/export_materials=1
blender/animation/limit_playback=true
blender/animation/always_sample=true
blender/animation/group_tracks=true
gltf/naming_version=2

Binary file not shown.

After

Width:  |  Height:  |  Size: 533 B

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dng410xo7qqfv"
path="res://.godot/imported/a-moon.png-bce2eccded710c90add850f3ca7cb2e1.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Assets/PixelPlanets/a-moon.png"
dest_files=["res://.godot/imported/a-moon.png-bce2eccded710c90add850f3ca7cb2e1.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

31
CHANGELOG.md Normal file
View File

@@ -0,0 +1,31 @@
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
### Added
### Changed
### Removed
## [0.0.1] - 2026-03-15
### Added
- First inital release of the Expremerts
- Created Changelog
- Added pipline for sonar
- Added pipline for releases
- Created UI Elements to exit the game
- added four minigames to test
### Fixed
### Changed
### Removed

View File

@@ -0,0 +1,40 @@
<mxfile host="Electron" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/28.0.6 Chrome/138.0.7204.100 Electron/37.2.3 Safari/537.36" version="28.0.6">
<diagram name="Seite-1" id="8VUDw9VsU7XZE8zAJI22">
<mxGraphModel dx="575" dy="518" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="U4xH48hkQDtbZK23ePJW-3" value="2D Movement Drag Conept" style="shape=cube;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;darkOpacity=0.05;darkOpacity2=0.1;" vertex="1" parent="1">
<mxGeometry x="10" y="10" width="120" height="80" as="geometry" />
</mxCell>
<mxCell id="U4xH48hkQDtbZK23ePJW-4" value="When&lt;br&gt;Left Click + Hold" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
<mxGeometry x="40" y="120" width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="U4xH48hkQDtbZK23ePJW-5" value="Save Mouse Pos" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="160" y="130" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="U4xH48hkQDtbZK23ePJW-6" value="Movement of mouse" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;" vertex="1" parent="1">
<mxGeometry x="40" y="250" width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="U4xH48hkQDtbZK23ePJW-7" value="New Mouse pos - old pos = move postions" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="160" y="260" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="U4xH48hkQDtbZK23ePJW-8" value="" style="endArrow=classic;html=1;rounded=0;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="440" y="210" as="sourcePoint" />
<mxPoint x="600" y="330" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="U4xH48hkQDtbZK23ePJW-10" value="Click&lt;br&gt;PosA" style="shape=callout;whiteSpace=wrap;html=1;perimeter=calloutPerimeter;" vertex="1" parent="1">
<mxGeometry x="380" y="130" width="120" height="80" as="geometry" />
</mxCell>
<mxCell id="U4xH48hkQDtbZK23ePJW-11" value="Click Move&lt;br&gt;PosB" style="shape=callout;whiteSpace=wrap;html=1;perimeter=calloutPerimeter;" vertex="1" parent="1">
<mxGeometry x="540" y="250" width="120" height="80" as="geometry" />
</mxCell>
<mxCell id="U4xH48hkQDtbZK23ePJW-12" value="Vector: 10x, -5y" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="540" y="130" width="120" height="60" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 15 KiB

View File

@@ -0,0 +1,39 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://pyvdyr3pes5o"
valid=false
[deps]
source_file="res://Games/SpaceResources/Planing/Movement 2D.svg"
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
svg/scale=1.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false

View File

@@ -0,0 +1,52 @@
extends Camera2D
class_name RecurionCamera
@export var movement_speed: float = 1
var mouse_pos_a: Vector2 = Vector2.ZERO
var mouse_pos_b: Vector2 = Vector2.ZERO
func _process(delta: float) -> void:
process_keyboard_input(delta)
process_mouse_input()
func process_keyboard_input(delta: float):
var direction: Vector2 = Vector2.ZERO
if (Input.is_action_pressed("w")):
direction += Vector2.UP
if (Input.is_action_pressed("s")):
direction += Vector2.DOWN
if (Input.is_action_pressed("a")):
direction += Vector2.LEFT
if (Input.is_action_pressed("d")):
direction += Vector2.RIGHT
direction = direction.normalized() * movement_speed
position += direction * delta * 100
func process_mouse_input():
if (Input.is_action_just_pressed("mouse_down")):
mouse_pos_a = get_global_mouse_position()
mouse_pos_b = mouse_pos_a
elif (Input.is_action_pressed("mouse_down")):
mouse_pos_b = get_global_mouse_position()
position = mouse_pos_a - mouse_pos_b + position
elif (Input.is_action_just_released("mouse_down")):
mouse_pos_a = Vector2.ZERO
mouse_pos_b = Vector2.ZERO
mouse_pos_b = mouse_pos_a
func _input(event: InputEvent) -> void:
if (event is InputEventMouseButton):
var zoom_value = Input.get_axis("scroll_down", "scroll_up")
if (zoom.y + zoom_value > 0.0):
zoom += Vector2.ONE * zoom_value

View File

@@ -0,0 +1 @@
uid://bqslv86lm78ci

View File

@@ -0,0 +1 @@
extends Node

View File

@@ -0,0 +1 @@
uid://bqlwhd5slcp0h

16
Levels/Recuration.tscn Normal file
View File

@@ -0,0 +1,16 @@
[gd_scene format=3 uid="uid://cycayd4l7k7s4"]
[ext_resource type="Script" uid="uid://bqslv86lm78ci" path="res://Games/SpaceResources/Scripts/RecurionCamera.gd" id="1_002bs"]
[ext_resource type="Texture2D" uid="uid://dng410xo7qqfv" path="res://Assets/PixelPlanets/a-moon.png" id="2_qgdyp"]
[node name="Recuration" type="Node2D" unique_id=1741828961]
[node name="RecurionCamera" type="Camera2D" parent="." unique_id=997983592]
script = ExtResource("1_002bs")
movement_speed = 10.0
metadata/_custom_type_script = "uid://bqslv86lm78ci"
[node name="Sprite2D" type="Sprite2D" parent="." unique_id=45756830]
texture_filter = 1
texture_repeat = 1
texture = ExtResource("2_qgdyp")

108
Levels/pid_test.gd Normal file
View File

@@ -0,0 +1,108 @@
extends Node3D
var p:float = 0.4
var i:float = 0.0
var d:float = 1
var force:float = 200.0
var error:float = 0.0
var last_error = 0.0
var error_derivative:float = 0.0
var integral:float = 0.0
var target:float = 0.0 #0.0 -> 359.99
var p_input:SpinBox
var i_input:SpinBox
var d_input:SpinBox
var force_input:SpinBox
var target_input:SpinBox
var spinner_node:Node3D
var target_node:Node3D
var error_lable:Label
var speed_lable:Label
var acceleration_label:Label
var error_derivative_lable:Label
var integral_lable:Label
var spinner_speed:float = 0.0
var max_speed:float = 120 # deg/m -> 1/360/60s = 1rpm
var acceleration:float
func _ready() -> void:
spinner_node = get_node("Spinner")
target_node = get_node("Target")
p_input = get_node("PID Menue/PanelContainer/VBoxContainer/Proportinal Term (P)/Input")
p_input.value_changed.connect(_update_p_value)
i_input = get_node("PID Menue/PanelContainer/VBoxContainer/Integral (I)/Input")
i_input.value_changed.connect(_update_i_value)
d_input = get_node("PID Menue/PanelContainer/VBoxContainer/Derivative (D)/Input")
d_input.value_changed.connect(_update_d_value)
force_input = get_node("PID Menue/PanelContainer/VBoxContainer/Force/Input")
force_input.value_changed.connect(_update_force_value)
target_input =get_node("PID Menue/PanelContainer/VBoxContainer/Target Rotation/Input")
target_input.value_changed.connect(_update_target_rot)
error_lable = get_node("PID Menue/PanelContainer/VBoxContainer/Error/Output")
speed_lable = get_node("PID Menue/PanelContainer/VBoxContainer/Speed/Output")
error_derivative_lable = get_node("PID Menue/PanelContainer/VBoxContainer/Error Derivative/Output")
acceleration_label = get_node("PID Menue/PanelContainer/VBoxContainer/Acceleration/Output")
integral_lable = get_node("PID Menue/PanelContainer/VBoxContainer/Integral/Output")
# Set default values
p_input.value = p
i_input.value = i
d_input.value = d
force_input.value = force
func _update_target_rot(value:float) -> void:
target_node.rotation.x = deg_to_rad(value)
func _update_p_value(value:float) -> void:
p = value
func _update_i_value(value:float) -> void:
i = value
func _update_d_value(value:float) -> void:
d = value
func _update_force_value(value:float) -> void:
force = value
func _process(delta: float) -> void:
# PID Stuff
target = rad_to_deg(target_node.rotation.x)
error = target - rad_to_deg(spinner_node.rotation.x)
error_derivative = (error - last_error) /delta
integral += error * delta
# Clamp acceleration between min and max force
var pid_output := (p * error) + (i * integral) + (d * error_derivative)
acceleration = clampf(pid_output, -force, force)
# Set speed
var next_speed = spinner_speed + acceleration * delta
# Block acceleration that would exceed max speed
if abs(spinner_speed) >= max_speed and sign(acceleration) == sign(spinner_speed):
acceleration = 0.0
next_speed = spinner_speed
spinner_speed = clamp(next_speed, -max_speed, max_speed)
spinner_node.rotation_degrees.x += spinner_speed * delta
last_error = error
func _physics_process(delta: float) -> void:
#UI Updats
error_lable.text = str(error).pad_decimals(2).pad_zeros(3) + " deg"
error_derivative_lable.text = str(error_derivative).pad_decimals(2).pad_zeros(3)
integral_lable.text = str(integral).pad_decimals(2).pad_zeros(3)
speed_lable.text = str(spinner_speed).pad_decimals(2).pad_zeros(3) + " deg/m"
acceleration_label.text = str(acceleration/force*100).pad_decimals(2).pad_zeros(3) + " %"

1
Levels/pid_test.gd.uid Normal file
View File

@@ -0,0 +1 @@
uid://b63aqs33qyp0g

View File

@@ -1,3 +1,221 @@
[gd_scene format=3 uid="uid://caj5t8q1fii5m"] [gd_scene load_steps=8 format=3 uid="uid://caj5t8q1fii5m"]
[ext_resource type="PackedScene" uid="uid://cin3pgpeydkpe" path="res://Assets/PID_Spinning_Target.glb" id="1_0c8sw"]
[ext_resource type="Script" uid="uid://b63aqs33qyp0g" path="res://Levels/pid_test.gd" id="1_sxbsa"]
[ext_resource type="PackedScene" uid="uid://b8yyluxikhlr0" path="res://Assets/PID_Spinning_Stuff.glb" id="2_sxbsa"]
[sub_resource type="Environment" id="Environment_d03hh"]
background_mode = 2
background_color = Color(0.14478481, 0.14478481, 0.14478481, 1)
ambient_light_source = 2
[sub_resource type="Theme" id="Theme_sxbsa"]
[sub_resource type="Theme" id="Theme_d03hh"]
[sub_resource type="LabelSettings" id="LabelSettings_sxbsa"]
font_size = 24
[node name="PidTest" type="Node3D"] [node name="PidTest" type="Node3D"]
script = ExtResource("1_sxbsa")
[node name="Target" type="Node3D" parent="."]
[node name="PID_Spinning_Target" parent="Target" instance=ExtResource("1_0c8sw")]
[node name="Spinner" type="Node3D" parent="."]
[node name="PID_Spinning_Stuff" parent="Spinner" instance=ExtResource("2_sxbsa")]
[node name="OmniLight3D" type="OmniLight3D" parent="Spinner/PID_Spinning_Stuff"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.40560818, 0.6382216, 0)
light_color = Color(0.99999994, 0.20727095, 0.32746297, 1)
light_energy = 0.2
shadow_enabled = true
[node name="Camera3D" type="Camera3D" parent="."]
transform = Transform3D(-4.3597606e-08, -0.072106734, 0.99739695, -3.1518854e-09, 0.99739695, 0.072106734, -1, 0, -4.371139e-08, 4.3431935, 0.43207824, 0)
environment = SubResource("Environment_d03hh")
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
transform = Transform3D(0.25000006, 0.9659258, 0.06698735, -0.2588191, -1.9081726e-08, 0.9659258, 0.93301266, -0.25881913, 0.25000003, 0, 3.3288543, 0)
[node name="PID Menue" type="Control" parent="."]
layout_mode = 3
anchors_preset = 0
offset_left = 20.0
offset_top = 20.0
offset_right = 20.0
offset_bottom = 20.0
theme = SubResource("Theme_sxbsa")
[node name="PanelContainer" type="PanelContainer" parent="PID Menue"]
layout_mode = 0
offset_right = 40.0
offset_bottom = 40.0
[node name="VBoxContainer" type="VBoxContainer" parent="PID Menue/PanelContainer"]
layout_mode = 2
theme = SubResource("Theme_d03hh")
[node name="Spinner Header" type="Label" parent="PID Menue/PanelContainer/VBoxContainer"]
layout_mode = 2
text = "Spinner Controll"
label_settings = SubResource("LabelSettings_sxbsa")
[node name="Proportinal Term (P)" type="HBoxContainer" parent="PID Menue/PanelContainer/VBoxContainer"]
layout_mode = 2
[node name="Label" type="Label" parent="PID Menue/PanelContainer/VBoxContainer/Proportinal Term (P)"]
layout_mode = 2
size_flags_horizontal = 3
text = "Proportinal Term (P)"
[node name="MarginContainer" type="MarginContainer" parent="PID Menue/PanelContainer/VBoxContainer/Proportinal Term (P)"]
custom_minimum_size = Vector2(20, 0)
layout_mode = 2
[node name="Input" type="SpinBox" parent="PID Menue/PanelContainer/VBoxContainer/Proportinal Term (P)"]
layout_mode = 2
max_value = 1.0
step = 0.01
value = 0.5
[node name="Integral (I)" type="HBoxContainer" parent="PID Menue/PanelContainer/VBoxContainer"]
layout_mode = 2
[node name="Label" type="Label" parent="PID Menue/PanelContainer/VBoxContainer/Integral (I)"]
layout_mode = 2
size_flags_horizontal = 3
text = "Integral (I)"
[node name="Input" type="SpinBox" parent="PID Menue/PanelContainer/VBoxContainer/Integral (I)"]
layout_mode = 2
max_value = 1.0
step = 0.01
[node name="Derivative (D)" type="HBoxContainer" parent="PID Menue/PanelContainer/VBoxContainer"]
layout_mode = 2
[node name="Label" type="Label" parent="PID Menue/PanelContainer/VBoxContainer/Derivative (D)"]
layout_mode = 2
size_flags_horizontal = 3
text = "Derivative (D)"
[node name="Input" type="SpinBox" parent="PID Menue/PanelContainer/VBoxContainer/Derivative (D)"]
layout_mode = 2
max_value = 1.0
step = 0.01
[node name="Force" type="HBoxContainer" parent="PID Menue/PanelContainer/VBoxContainer"]
layout_mode = 2
[node name="Label" type="Label" parent="PID Menue/PanelContainer/VBoxContainer/Force"]
layout_mode = 2
size_flags_horizontal = 3
text = "Force"
[node name="Input" type="SpinBox" parent="PID Menue/PanelContainer/VBoxContainer/Force"]
layout_mode = 2
[node name="MarginContainer" type="MarginContainer" parent="PID Menue/PanelContainer/VBoxContainer"]
custom_minimum_size = Vector2(0, 20)
layout_mode = 2
[node name="Target Header" type="Label" parent="PID Menue/PanelContainer/VBoxContainer"]
layout_mode = 2
text = "Target"
label_settings = SubResource("LabelSettings_sxbsa")
[node name="Target Rotation" type="HBoxContainer" parent="PID Menue/PanelContainer/VBoxContainer"]
layout_mode = 2
[node name="Label" type="Label" parent="PID Menue/PanelContainer/VBoxContainer/Target Rotation"]
layout_mode = 2
size_flags_horizontal = 3
text = "Target Rotation"
[node name="Input" type="SpinBox" parent="PID Menue/PanelContainer/VBoxContainer/Target Rotation"]
layout_mode = 2
max_value = 1439.96
step = 0.01
custom_arrow_step = 10.0
[node name="MarginContainer2" type="MarginContainer" parent="PID Menue/PanelContainer/VBoxContainer"]
custom_minimum_size = Vector2(0, 20)
layout_mode = 2
[node name="Solution" type="Label" parent="PID Menue/PanelContainer/VBoxContainer"]
layout_mode = 2
text = "Solution"
label_settings = SubResource("LabelSettings_sxbsa")
[node name="Error" type="HBoxContainer" parent="PID Menue/PanelContainer/VBoxContainer"]
layout_mode = 2
[node name="Label" type="Label" parent="PID Menue/PanelContainer/VBoxContainer/Error"]
layout_mode = 2
size_flags_horizontal = 3
text = "Error"
[node name="Output" type="Label" parent="PID Menue/PanelContainer/VBoxContainer/Error"]
layout_mode = 2
text = "000.00"
horizontal_alignment = 1
uppercase = true
[node name="Error Derivative" type="HBoxContainer" parent="PID Menue/PanelContainer/VBoxContainer"]
layout_mode = 2
[node name="Label" type="Label" parent="PID Menue/PanelContainer/VBoxContainer/Error Derivative"]
layout_mode = 2
size_flags_horizontal = 3
text = "Error Derivative"
[node name="Output" type="Label" parent="PID Menue/PanelContainer/VBoxContainer/Error Derivative"]
layout_mode = 2
text = "000.00"
horizontal_alignment = 1
uppercase = true
[node name="Integral" type="HBoxContainer" parent="PID Menue/PanelContainer/VBoxContainer"]
layout_mode = 2
[node name="Label" type="Label" parent="PID Menue/PanelContainer/VBoxContainer/Integral"]
layout_mode = 2
size_flags_horizontal = 3
text = "Integral"
[node name="Output" type="Label" parent="PID Menue/PanelContainer/VBoxContainer/Integral"]
layout_mode = 2
text = "000.00"
horizontal_alignment = 1
uppercase = true
[node name="Speed" type="HBoxContainer" parent="PID Menue/PanelContainer/VBoxContainer"]
layout_mode = 2
[node name="Label" type="Label" parent="PID Menue/PanelContainer/VBoxContainer/Speed"]
layout_mode = 2
size_flags_horizontal = 3
text = "Speed"
[node name="Output" type="Label" parent="PID Menue/PanelContainer/VBoxContainer/Speed"]
layout_mode = 2
text = "000.00"
horizontal_alignment = 1
uppercase = true
[node name="Acceleration" type="HBoxContainer" parent="PID Menue/PanelContainer/VBoxContainer"]
layout_mode = 2
[node name="Label" type="Label" parent="PID Menue/PanelContainer/VBoxContainer/Acceleration"]
layout_mode = 2
size_flags_horizontal = 3
text = "Acceleration"
[node name="Output" type="Label" parent="PID Menue/PanelContainer/VBoxContainer/Acceleration"]
layout_mode = 2
text = "000.00"
horizontal_alignment = 1
uppercase = true

6
back_to_main.gd Normal file
View File

@@ -0,0 +1,6 @@
extends Node
var main_menue: PackedScene = preload("res://main.tscn")
func _input(event: InputEvent) -> void:
if event.is_action_pressed("main_menue"):
get_tree().change_scene_to_packed(main_menue)

1
back_to_main.gd.uid Normal file
View File

@@ -0,0 +1 @@
uid://c6n4axv3eoguq

168
export_presets.cfg Normal file
View File

@@ -0,0 +1,168 @@
[preset.0]
name="Web"
platform="Web"
runnable=false
dedicated_server=false
custom_features=""
export_filter="all_resources"
include_filter=""
exclude_filter="*.blend"
export_path=""
patches=PackedStringArray()
patch_delta_encoding=false
patch_delta_compression_level_zstd=19
patch_delta_min_reduction=0.1
patch_delta_include_filters="*"
patch_delta_exclude_filters=""
encryption_include_filters=""
encryption_exclude_filters=""
seed=0
encrypt_pck=true
encrypt_directory=false
script_export_mode=2
[preset.0.options]
custom_template/debug=""
custom_template/release=""
variant/extensions_support=false
variant/thread_support=false
vram_texture_compression/for_desktop=true
vram_texture_compression/for_mobile=false
html/export_icon=true
html/custom_html_shell=""
html/head_include=""
html/canvas_resize_policy=2
html/focus_canvas_on_start=true
html/experimental_virtual_keyboard=false
progressive_web_app/enabled=false
progressive_web_app/ensure_cross_origin_isolation_headers=true
progressive_web_app/offline_page=""
progressive_web_app/display=1
progressive_web_app/orientation=0
progressive_web_app/icon_144x144=""
progressive_web_app/icon_180x180=""
progressive_web_app/icon_512x512=""
progressive_web_app/background_color=Color(0, 0, 0, 1)
threads/emscripten_pool_size=8
threads/godot_pool_size=4
[preset.1]
name="Linux/X11"
platform="Linux"
runnable=true
dedicated_server=false
custom_features=""
export_filter="all_resources"
include_filter=""
exclude_filter="*.blend"
export_path="<null>"
patches=PackedStringArray()
patch_delta_encoding=false
patch_delta_compression_level_zstd=19
patch_delta_min_reduction=0.1
patch_delta_include_filters="*"
patch_delta_exclude_filters=""
encryption_include_filters=""
encryption_exclude_filters=""
seed=0
encrypt_pck=false
encrypt_directory=false
script_export_mode=2
[preset.1.options]
custom_template/debug=""
custom_template/release=""
debug/export_console_wrapper=1
binary_format/embed_pck=false
texture_format/s3tc_bptc=true
texture_format/etc2_astc=false
shader_baker/enabled=false
binary_format/architecture="x86_64"
ssh_remote_deploy/enabled=false
ssh_remote_deploy/host="user@host_ip"
ssh_remote_deploy/port="22"
ssh_remote_deploy/extra_args_ssh=""
ssh_remote_deploy/extra_args_scp=""
ssh_remote_deploy/run_script="#!/usr/bin/env bash
export DISPLAY=:0
unzip -o -q \"{temp_dir}/{archive_name}\" -d \"{temp_dir}\"
\"{temp_dir}/{exe_name}\" {cmd_args}"
ssh_remote_deploy/cleanup_script="#!/usr/bin/env bash
pkill -x -f \"{temp_dir}/{exe_name} {cmd_args}\"
rm -rf \"{temp_dir}\""
[preset.2]
name="Windows"
platform="Windows Desktop"
runnable=true
dedicated_server=false
custom_features=""
export_filter="all_resources"
include_filter=""
exclude_filter="*.blend"
export_path=""
patches=PackedStringArray()
patch_delta_encoding=false
patch_delta_compression_level_zstd=19
patch_delta_min_reduction=0.1
patch_delta_include_filters="*"
patch_delta_exclude_filters=""
encryption_include_filters=""
encryption_exclude_filters=""
seed=0
encrypt_pck=false
encrypt_directory=false
script_export_mode=2
[preset.2.options]
custom_template/debug=""
custom_template/release=""
debug/export_console_wrapper=1
binary_format/embed_pck=false
texture_format/s3tc_bptc=true
texture_format/etc2_astc=false
shader_baker/enabled=false
binary_format/architecture="x86_64"
codesign/enable=false
codesign/timestamp=true
codesign/timestamp_server_url=""
codesign/digest_algorithm=1
codesign/description=""
codesign/custom_options=PackedStringArray()
application/modify_resources=true
application/icon=""
application/console_wrapper_icon=""
application/icon_interpolation=4
application/file_version=""
application/product_version=""
application/company_name=""
application/product_name=""
application/file_description=""
application/copyright=""
application/trademarks=""
application/export_angle=0
application/export_d3d12=0
application/d3d12_agility_sdk_multiarch=true
ssh_remote_deploy/enabled=false
ssh_remote_deploy/host="user@host_ip"
ssh_remote_deploy/port="22"
ssh_remote_deploy/extra_args_ssh=""
ssh_remote_deploy/extra_args_scp=""
ssh_remote_deploy/run_script="Expand-Archive -LiteralPath '{temp_dir}\\{archive_name}' -DestinationPath '{temp_dir}'
$action = New-ScheduledTaskAction -Execute '{temp_dir}\\{exe_name}' -Argument '{cmd_args}'
$trigger = New-ScheduledTaskTrigger -Once -At 00:00
$settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries
$task = New-ScheduledTask -Action $action -Trigger $trigger -Settings $settings
Register-ScheduledTask godot_remote_debug -InputObject $task -Force:$true
Start-ScheduledTask -TaskName godot_remote_debug
while (Get-ScheduledTask -TaskName godot_remote_debug | ? State -eq running) { Start-Sleep -Milliseconds 100 }
Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue"
ssh_remote_deploy/cleanup_script="Stop-ScheduledTask -TaskName godot_remote_debug -ErrorAction:SilentlyContinue
Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue
Remove-Item -Recurse -Force '{temp_dir}'"

View File

@@ -1,11 +1,13 @@
[gd_scene load_steps=5 format=3 uid="uid://djelupqdj4wgd"] [gd_scene format=3 uid="uid://djelupqdj4wgd"]
[ext_resource type="Script" uid="uid://bel5yfuiqithe" path="res://open_level_component.gd" id="1_ig7tw"] [ext_resource type="Script" uid="uid://bel5yfuiqithe" path="res://open_level_component.gd" id="1_ig7tw"]
[ext_resource type="PackedScene" uid="uid://dgst4apmowe53" path="res://Levels/space_test.tscn" id="2_1bvp3"] [ext_resource type="PackedScene" uid="uid://dgst4apmowe53" path="res://Levels/space_test.tscn" id="2_1bvp3"]
[ext_resource type="PackedScene" uid="uid://jynlgkm41y8d" path="res://Levels/space_move.tscn" id="3_lquwl"] [ext_resource type="PackedScene" uid="uid://jynlgkm41y8d" path="res://Levels/space_move.tscn" id="3_lquwl"]
[ext_resource type="PackedScene" uid="uid://caj5t8q1fii5m" path="res://Levels/pid_test.tscn" id="4_7mycd"] [ext_resource type="PackedScene" uid="uid://caj5t8q1fii5m" path="res://Levels/pid_test.tscn" id="4_7mycd"]
[ext_resource type="PackedScene" uid="uid://cycayd4l7k7s4" path="res://Levels/Recuration.tscn" id="5_lquwl"]
[ext_resource type="Script" uid="uid://lh1hhx4q8nlu" path="res://quit_game_component.gd" id="6_7mycd"]
[node name="Main" type="Control"] [node name="Main" type="Control" unique_id=834120395]
layout_mode = 3 layout_mode = 3
anchors_preset = 15 anchors_preset = 15
anchor_right = 1.0 anchor_right = 1.0
@@ -13,7 +15,7 @@ anchor_bottom = 1.0
grow_horizontal = 2 grow_horizontal = 2
grow_vertical = 2 grow_vertical = 2
[node name="VBoxContainer" type="VBoxContainer" parent="."] [node name="VBoxContainer" type="VBoxContainer" parent="." unique_id=1674123930]
layout_mode = 1 layout_mode = 1
anchors_preset = 15 anchors_preset = 15
anchor_right = 1.0 anchor_right = 1.0
@@ -25,30 +27,47 @@ offset_bottom = -55.0
grow_horizontal = 2 grow_horizontal = 2
grow_vertical = 2 grow_vertical = 2
[node name="Button" type="Button" parent="VBoxContainer"] [node name="Button" type="Button" parent="VBoxContainer" unique_id=1520219681]
layout_mode = 2 layout_mode = 2
text = "space_test" text = "space_test"
[node name="OpenLevelComponent" type="Node" parent="VBoxContainer/Button"] [node name="OpenLevelComponent" type="Node" parent="VBoxContainer/Button" unique_id=1834050455]
script = ExtResource("1_ig7tw") script = ExtResource("1_ig7tw")
level = ExtResource("2_1bvp3") level = ExtResource("2_1bvp3")
metadata/_custom_type_script = "uid://bel5yfuiqithe" metadata/_custom_type_script = "uid://bel5yfuiqithe"
[node name="Button2" type="Button" parent="VBoxContainer"] [node name="Button2" type="Button" parent="VBoxContainer" unique_id=93954602]
layout_mode = 2 layout_mode = 2
text = "space_move text = "space_move
" "
[node name="OpenLevelComponent" type="Node" parent="VBoxContainer/Button2"] [node name="OpenLevelComponent" type="Node" parent="VBoxContainer/Button2" unique_id=1732413263]
script = ExtResource("1_ig7tw") script = ExtResource("1_ig7tw")
level = ExtResource("3_lquwl") level = ExtResource("3_lquwl")
metadata/_custom_type_script = "uid://bel5yfuiqithe" metadata/_custom_type_script = "uid://bel5yfuiqithe"
[node name="Button3" type="Button" parent="VBoxContainer"] [node name="Button3" type="Button" parent="VBoxContainer" unique_id=1480596145]
layout_mode = 2 layout_mode = 2
text = "pid_test" text = "pid_test"
[node name="OpenLevelComponent" type="Node" parent="VBoxContainer/Button3"] [node name="OpenLevelComponent" type="Node" parent="VBoxContainer/Button3" unique_id=1820153918]
script = ExtResource("1_ig7tw") script = ExtResource("1_ig7tw")
level = ExtResource("4_7mycd") level = ExtResource("4_7mycd")
metadata/_custom_type_script = "uid://bel5yfuiqithe" metadata/_custom_type_script = "uid://bel5yfuiqithe"
[node name="Button4" type="Button" parent="VBoxContainer" unique_id=955421861]
layout_mode = 2
text = "Recuration"
[node name="OpenLevelComponent" type="Node" parent="VBoxContainer/Button4" unique_id=292657034]
script = ExtResource("1_ig7tw")
level = ExtResource("5_lquwl")
metadata/_custom_type_script = "uid://bel5yfuiqithe"
[node name="Button5" type="Button" parent="VBoxContainer" unique_id=630288499]
layout_mode = 2
text = "Exit Experements"
[node name="QuitGame" type="Node" parent="VBoxContainer/Button5" unique_id=1111277542]
script = ExtResource("6_7mycd")
metadata/_custom_type_script = "uid://lh1hhx4q8nlu"

View File

@@ -8,14 +8,27 @@
config_version=5 config_version=5
[animation]
compatibility/default_parent_skeleton_in_mesh_instance_3d=true
[application] [application]
config/name="Experements" config/name="Experements"
run/main_scene="uid://djelupqdj4wgd" run/main_scene="uid://djelupqdj4wgd"
config/features=PackedStringArray("4.5", "Forward Plus") config/features=PackedStringArray("4.6", "Forward Plus")
boot_splash/bg_color=Color(0, 0, 0, 1) boot_splash/bg_color=Color(0, 0, 0, 1)
config/icon="res://icon.svg" config/icon="res://icon.svg"
[autoload]
BackToMain="*res://back_to_main.gd"
[filesystem]
import/blender/enabled.android=true
import/blender/enabled.web=true
[input] [input]
w={ w={
@@ -48,6 +61,26 @@ e={
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":69,"key_label":0,"unicode":101,"location":0,"echo":false,"script":null) "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":69,"key_label":0,"unicode":101,"location":0,"echo":false,"script":null)
] ]
} }
main_menue={
"deadzone": 0.2,
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194305,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
]
}
scroll_up={
"deadzone": 0.2,
"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":8,"position":Vector2(275, 26),"global_position":Vector2(287, 86),"factor":1.0,"button_index":4,"canceled":false,"pressed":true,"double_click":false,"script":null)
]
}
scroll_down={
"deadzone": 0.2,
"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":16,"position":Vector2(339, 31),"global_position":Vector2(351, 91),"factor":1.0,"button_index":5,"canceled":false,"pressed":true,"double_click":false,"script":null)
]
}
mouse_down={
"deadzone": 0.2,
"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":1,"position":Vector2(253, 29),"global_position":Vector2(265, 89),"factor":1.0,"button_index":1,"canceled":false,"pressed":true,"double_click":false,"script":null)
]
}
[physics] [physics]
@@ -57,3 +90,7 @@ e={
3d/default_angular_damp=0.0 3d/default_angular_damp=0.0
3d/sleep_threshold_linear=0.01 3d/sleep_threshold_linear=0.01
3d/sleep_threshold_angular=0.00872665 3d/sleep_threshold_angular=0.00872665
[rendering]
environment/defaults/default_clear_color=Color(0, 0, 0, 1)

14
quit_game_component.gd Normal file
View File

@@ -0,0 +1,14 @@
extends Node
class_name QuitGame
@onready var button: Button = get_parent() as Button
func _ready() -> void:
button.pressed.connect(_on_button_pressed)
button.name = button.text
func _on_button_pressed() -> void:
get_tree().quit(0)

View File

@@ -0,0 +1 @@
uid://lh1hhx4q8nlu