diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml new file mode 100644 index 0000000..6412caf --- /dev/null +++ b/.gitea/workflows/release.yml @@ -0,0 +1,61 @@ +name: Build Release + +on: + push: + branches: [release] + pull_request: + branches: [release] + +jobs: + build: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + preset: ["Windows Desktop", "Linux/X11", "macOS"] + + steps: + - uses: actions/checkout@v5 + + - name: Extract version from CHANGELOG + id: changelog + uses: release-drafter/release-drafter@v5 + with: + changelog-file: CHANGELOG.md + template: | + name: ${{ version }} + body: | + ${{ description }} + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + # Create Release also creates an Tag + # - name: Create git tag + # uses: alazhar/gitea-action-autotag@v1 + # with: + # tag: ${{ steps.changelog.outputs.version }} + + - name: Build + id: build + uses: mlm-games/godot-build-action@v1 + with: + EXPORT_PRESET_NAME: ${{ matrix.preset }} + + - name: Upload builds + uses: actions/upload-artifact@v5 + with: + name: godot-${{ matrix.preset }}-v${{ steps.changelog.outputs.version }} + path: godot-${{ matrix.preset }}-v${{ steps.changelog.outputs.version }}.tar.gz + + - name: Create Release + uses: akkuman/gitea-release-action@v1 + with: + server_url: ${{ SERVER_URL }} + tag_name: ${{ steps.changelog.outputs.version }} + name: "Release ${{ steps.changelog.outputs.version }}" + body: ${{ steps.changelog.outputs.description }} + files: | + godot-Windows Desktop-v${{ steps.changelog.outputs.version }}.tar.gz + godot-Linux/X11-v${{ steps.changelog.outputs.version }}.tar.gz + godot-macOS-v${{ steps.changelog.outputs.version }}.tar.gz + draft: false diff --git a/Assets/PixelPlanets/a-moon.png b/Assets/PixelPlanets/a-moon.png new file mode 100644 index 0000000..a5e2d0f Binary files /dev/null and b/Assets/PixelPlanets/a-moon.png differ diff --git a/Assets/PixelPlanets/a-moon.png.import b/Assets/PixelPlanets/a-moon.png.import new file mode 100644 index 0000000..96da253 --- /dev/null +++ b/Assets/PixelPlanets/a-moon.png.import @@ -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 diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..bfe2024 --- /dev/null +++ b/CHANGELOG.md @@ -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 diff --git a/Games/SpaceResources/Planing/.$Movement 2D.svg.bkp b/Games/SpaceResources/Planing/.$Movement 2D.svg.bkp new file mode 100644 index 0000000..f28bcbc --- /dev/null +++ b/Games/SpaceResources/Planing/.$Movement 2D.svg.bkp @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Games/SpaceResources/Planing/Movement 2D.svg b/Games/SpaceResources/Planing/Movement 2D.svg new file mode 100644 index 0000000..6b6bd3a --- /dev/null +++ b/Games/SpaceResources/Planing/Movement 2D.svg @@ -0,0 +1,4 @@ + + + +2D Movement Drag Conept2D Movement Drag...WhenLeft Click + HoldWhen...Save Mouse PosSave Mouse PosMovement of mouseMovement of m...New Mouse pos - old pos = move postionsNew Mouse pos - old...ClickPosAClick...Click MovePosBClick Move...Vector: 10x, -5yVector: 10x, -5yText is not SVG - cannot display \ No newline at end of file diff --git a/Games/SpaceResources/Planing/Movement 2D.svg.import b/Games/SpaceResources/Planing/Movement 2D.svg.import new file mode 100644 index 0000000..0eef834 --- /dev/null +++ b/Games/SpaceResources/Planing/Movement 2D.svg.import @@ -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 diff --git a/Games/SpaceResources/Scripts/RecurionCamera.gd b/Games/SpaceResources/Scripts/RecurionCamera.gd new file mode 100644 index 0000000..1a7df4f --- /dev/null +++ b/Games/SpaceResources/Scripts/RecurionCamera.gd @@ -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 diff --git a/Games/SpaceResources/Scripts/RecurionCamera.gd.uid b/Games/SpaceResources/Scripts/RecurionCamera.gd.uid new file mode 100644 index 0000000..44ffaa8 --- /dev/null +++ b/Games/SpaceResources/Scripts/RecurionCamera.gd.uid @@ -0,0 +1 @@ +uid://bqslv86lm78ci diff --git a/Games/Assets/ResourceComponent.gd b/Games/SpaceResources/Scripts/ResourceComponent.gd similarity index 100% rename from Games/Assets/ResourceComponent.gd rename to Games/SpaceResources/Scripts/ResourceComponent.gd diff --git a/Games/Assets/ResourceComponent.gd.uid b/Games/SpaceResources/Scripts/ResourceComponent.gd.uid similarity index 100% rename from Games/Assets/ResourceComponent.gd.uid rename to Games/SpaceResources/Scripts/ResourceComponent.gd.uid diff --git a/Levels/Recuration.tscn b/Levels/Recuration.tscn new file mode 100644 index 0000000..c51a510 --- /dev/null +++ b/Levels/Recuration.tscn @@ -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") diff --git a/Levels/SpaceResources.tscn b/Levels/SpaceResources.tscn deleted file mode 100644 index fa4a5cb..0000000 --- a/Levels/SpaceResources.tscn +++ /dev/null @@ -1,3 +0,0 @@ -[gd_scene format=3 uid="uid://b5n2k34r6e6j5"] - -[node name="SpaceResources" type="Node2D" unique_id=1118282720] diff --git a/main.tscn b/main.tscn index 9b67dfc..b84a7b8 100644 --- a/main.tscn +++ b/main.tscn @@ -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="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://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 anchors_preset = 15 anchor_right = 1.0 @@ -13,7 +15,7 @@ anchor_bottom = 1.0 grow_horizontal = 2 grow_vertical = 2 -[node name="VBoxContainer" type="VBoxContainer" parent="."] +[node name="VBoxContainer" type="VBoxContainer" parent="." unique_id=1674123930] layout_mode = 1 anchors_preset = 15 anchor_right = 1.0 @@ -25,30 +27,47 @@ offset_bottom = -55.0 grow_horizontal = 2 grow_vertical = 2 -[node name="Button" type="Button" parent="VBoxContainer"] +[node name="Button" type="Button" parent="VBoxContainer" unique_id=1520219681] layout_mode = 2 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") level = ExtResource("2_1bvp3") 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 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") level = ExtResource("3_lquwl") 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 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") level = ExtResource("4_7mycd") 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" diff --git a/project.godot b/project.godot index 0ae9d7d..e70e06b 100644 --- a/project.godot +++ b/project.godot @@ -8,11 +8,15 @@ config_version=5 +[animation] + +compatibility/default_parent_skeleton_in_mesh_instance_3d=true + [application] config/name="Experements" 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) config/icon="res://icon.svg" @@ -57,6 +61,21 @@ main_menue={ "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] @@ -66,3 +85,7 @@ main_menue={ 3d/default_angular_damp=0.0 3d/sleep_threshold_linear=0.01 3d/sleep_threshold_angular=0.00872665 + +[rendering] + +environment/defaults/default_clear_color=Color(0, 0, 0, 1) diff --git a/quit_game_component.gd b/quit_game_component.gd new file mode 100644 index 0000000..7c178f2 --- /dev/null +++ b/quit_game_component.gd @@ -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) diff --git a/quit_game_component.gd.uid b/quit_game_component.gd.uid new file mode 100644 index 0000000..f3ff317 --- /dev/null +++ b/quit_game_component.gd.uid @@ -0,0 +1 @@ +uid://lh1hhx4q8nlu