feat: Audio Menu

This commit is contained in:
Jakob Feldmann 2023-08-07 14:51:35 +02:00
parent 5862433a49
commit 29e3c60d1a
51 changed files with 685 additions and 210 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

View File

@ -0,0 +1,14 @@
[gd_resource type="GradientTexture2D" load_steps=2 format=2]
[sub_resource type="Gradient" id=4]
interpolation_mode = 2
offsets = PoolRealArray( 0, 0.797721 )
colors = PoolColorArray( 0, 0, 0, 0, 0, 0, 0, 0.513726 )
[resource]
gradient = SubResource( 4 )
width = 640
height = 326
fill = 1
fill_from = Vector2( 0.547602, 0.536618 )
fill_to = Vector2( 1, 1 )

View File

@ -57,7 +57,7 @@ _global_script_classes=[ {
"base": "Actor",
"class": "Enemy",
"language": "GDScript",
"path": "res://src/Actors/Enemies/Beings/Enemy.gd"
"path": "res://src/Actors/Enemies/Enemy.gd"
}, {
"base": "Resource",
"class": "GlobalStateResource",

View File

@ -4399,7 +4399,6 @@ one_shot = true
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
[connection signal="area_entered" from="BlobbySkin" to="." method="_on_BlobbySkin_area_entered"]
[connection signal="body_entered" from="BlobbySkin" to="." method="_on_BlobbySkin_body_entered"]
[connection signal="got_grounded" from="BlobbyStateMachine" to="." method="_on_Blobby_got_grounded"]
[connection signal="timeout" from="BlobbyStateMachine/JumpBufferTimer" to="BlobbyStateMachine" method="_on_JumpBufferTimer_timeout"]
[connection signal="timeout" from="InvincibilityTimer" to="." method="_on_InvincibilityTimer_timeout"]

View File

@ -12,7 +12,6 @@ onready var shiftLeft = $CameraAnimationPlayer.get_animation("shiftingLeft")
onready var shiftRight = $CameraAnimationPlayer.get_animation("shiftingRight")
onready var shiftCenter = $CameraAnimationPlayer.get_animation("shiftingCenter")
onready var anim_player := $CameraAnimationPlayer
onready var horizontal_tween := $HorizontalShiftTween
onready var original_x_zoom := zoom.x
onready var original_y_zoom := zoom.y
onready var blobby := get_node("%Blobby")

View File

@ -1,7 +1,7 @@
[gd_scene load_steps=7 format=2]
[ext_resource path="res://assets/enemy/enemy.png" type="Texture" id=1]
[ext_resource path="res://src/Actors/Enemies/Beings/Caterpillar.gd" type="Script" id=2]
[ext_resource path="res://src/Actors/Enemies/Caterpillar.gd" type="Script" id=2]
[ext_resource path="res://src/StateMachines/CaterpillarStateMachine.gd" type="Script" id=3]
[sub_resource type="RectangleShape2D" id=2]

View File

@ -1,7 +1,7 @@
[gd_scene load_steps=6 format=2]
[ext_resource path="res://assets/enemy/enemy.png" type="Texture" id=1]
[ext_resource path="res://src/Actors/Enemies/Beings/DartingEnemy.gd" type="Script" id=2]
[ext_resource path="res://src/Actors/Enemies/DartingEnemy.gd" type="Script" id=2]
[sub_resource type="RectangleShape2D" id=1]
extents = Vector2( 15, 9 )

View File

@ -1,7 +1,7 @@
[gd_scene load_steps=23 format=2]
[ext_resource path="res://src/Actors/Enemies/Beings/Flyer.gd" type="Script" id=1]
[ext_resource path="res://src/StateMachines/FlyerStateMachine.gd" type="Script" id=2]
[ext_resource path="res://src/StateMachines/FlyerStateMachine.gd" type="Script" id=1]
[ext_resource path="res://src/Actors/Enemies/Flyer.gd" type="Script" id=2]
[ext_resource path="res://assets/meta/new_dynamicfont.tres" type="DynamicFont" id=3]
[ext_resource path="res://assets/enemy/flyer-sheet.png" type="Texture" id=4]
@ -195,7 +195,7 @@ extents = Vector2( 15.7143, 12.1429 )
[node name="Flyer" type="KinematicBody2D" groups=["frogfood", "harmful"]]
collision_layer = 258
collision_mask = 25
script = ExtResource( 1 )
script = ExtResource( 2 )
vision_distance = 8.0
loose_target_seconds = 5.0
patrolling = true
@ -204,7 +204,7 @@ max_speed = 80
weight = 0.3
[node name="Statemachine" type="Node2D" parent="."]
script = ExtResource( 2 )
script = ExtResource( 1 )
[node name="StateLabel" type="Label" parent="."]
visible = false
@ -289,7 +289,7 @@ shape = SubResource( 2 )
[node name="DangerousBlockArea" type="Node2D" parent="."]
scale = Vector2( 0.7, 0.7 )
[node name="Area2D" type="Area2D" parent="DangerousBlockArea" groups=["harmful"]]
[node name="Area2D" type="Area2D" parent="DangerousBlockArea" groups=["frogfood", "harmful"]]
collision_layer = 2
collision_mask = 0
monitoring = false

View File

@ -1,7 +1,7 @@
[gd_scene load_steps=6 format=2]
[ext_resource path="res://assets/enemy/enemy.png" type="Texture" id=1]
[ext_resource path="res://src/Actors/Enemies/Beings/SimpleEnemy.gd" type="Script" id=2]
[ext_resource path="res://src/Actors/Enemies/SimpleEnemy.gd" type="Script" id=2]
[sub_resource type="RectangleShape2D" id=1]
extents = Vector2( 15, 7.5 )

View File

@ -1,7 +1,7 @@
[gd_scene load_steps=6 format=2]
[ext_resource path="res://assets/enemy/enemy.png" type="Texture" id=1]
[ext_resource path="res://src/Actors/Enemies/Beings/SmortEnemy.gd" type="Script" id=2]
[ext_resource path="res://src/Actors/Enemies/SmortEnemy.gd" type="Script" id=2]
[sub_resource type="RectangleShape2D" id=1]
extents = Vector2( 15, 7.5 )

View File

@ -2,8 +2,8 @@
[ext_resource path="res://assets/contraption/bumper.png" type="Texture" id=1]
[ext_resource path="res://assets/meta/new_dynamicfont.tres" type="DynamicFont" id=2]
[ext_resource path="res://src/Actors/Enemies/Machines/Turret.gd" type="Script" id=3]
[ext_resource path="res://src/Actors/Enemies/Machines/TurretStateMachine.gd" type="Script" id=4]
[ext_resource path="res://src/Actors/Enemies/Turret.gd" type="Script" id=3]
[ext_resource path="res://src/Actors/Enemies/TurretStateMachine.gd" type="Script" id=4]
[ext_resource path="res://assets/enemy/laserpoint.png" type="Texture" id=5]
[sub_resource type="RectangleShape2D" id=1]

View File

@ -1,8 +1,8 @@
[gd_scene load_steps=4 format=2]
[ext_resource path="res://src/Actors/Enemies/Beings/WhatAreFrog.tscn" type="PackedScene" id=1]
[ext_resource path="res://src/Actors/Friendlies/WhatAreFrog.tscn" type="PackedScene" id=1]
[ext_resource path="res://src/Contraptions/Rope/RopeAnchor.tscn" type="PackedScene" id=2]
[ext_resource path="res://src/Actors/Enemies/Beings/BoundFrog.gd" type="Script" id=3]
[ext_resource path="res://src/Actors/Friendlies/BoundFrog.gd" type="Script" id=3]
[node name="BoundFrog" type="Node2D"]
position = Vector2( 0, -1 )

View File

@ -113,7 +113,7 @@ func die() -> void:
func _on_EnemySkin_area_entered(area:Area2D) -> void:
if area.is_in_group("harmful"):
if area.is_in_group("harmful") && !area.is_in_group("frogfood"):
get_node("EnemyBody").disabled = true
die()

View File

@ -1,7 +1,7 @@
[gd_scene load_steps=49 format=2]
[ext_resource path="res://assets/enemy/froshler.png" type="Texture" id=1]
[ext_resource path="res://src/Actors/Enemies/Beings/WhatAreFrog.gd" type="Script" id=2]
[ext_resource path="res://src/Actors/Friendlies/WhatAreFrog.gd" type="Script" id=2]
[ext_resource path="res://src/StateMachines/WhatAreFrogStateMachine.gd" type="Script" id=3]
[ext_resource path="res://assets/meta/new_dynamicfont.tres" type="DynamicFont" id=4]
[ext_resource path="res://assets/meta/digits.png" type="Texture" id=5]
@ -578,7 +578,7 @@ shape = SubResource( 2 )
process_priority = -1
scale = Vector2( 0.7, 0.7 )
collision_layer = 2
collision_mask = 126
collision_mask = 106
[node name="CollisionPolygon2D" type="CollisionShape2D" parent="EnemySkin"]
position = Vector2( 0, -0.738329 )

View File

@ -6,8 +6,13 @@ onready var levelState := $"%LevelState"
export var currencyValue: = 1
func _on_body_entered(_body: Node) -> void:
levelState.currency += currencyValue
$AudioStreamPlayer.play()
anim_player.play("fade_out")
yield($AudioStreamPlayer, "finished")
queue_free()
if $AudioStreamPlayer.playing:
return
levelState.currency += currencyValue
$CollisionShape2D.disabled = true
self.monitoring = false
$AudioStreamPlayer.play()
anim_player.play("fade_out")
func collected() -> void:
queue_free()

View File

@ -315,7 +315,7 @@
[ext_resource path="res://assets/neutral object/whitegold orbicle/0285 (Klein)-fs8.png" type="Texture" id=313]
[ext_resource path="res://assets/neutral object/whitegold orbicle/0312 (Klein)-fs8.png" type="Texture" id=314]
[ext_resource path="res://assets/neutral object/whitegold orbicle/0287 (Klein)-fs8.png" type="Texture" id=315]
[ext_resource path="res://assets/sounds/BrokenWindows3.ogg" type="AudioStream" id=316]
[ext_resource path="res://assets/sounds/MAGIC_SPELL_Attacking_Climbing_Bells_stereo.wav" type="AudioStream" id=316]
[ext_resource path="res://assets/environment/blocks/Empty-Navigation-Tile.png" type="Texture" id=317]
[sub_resource type="CircleShape2D" id=1]
@ -341,7 +341,7 @@ tracks/1/path = NodePath(".")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/enabled = false
tracks/1/keys = {
"times": PoolRealArray( 0.1 ),
"transitions": PoolRealArray( 1 ),
@ -465,19 +465,18 @@ rotation = -0.235619
scale = Vector2( 0.036, 0.036 )
frames = SubResource( 4 )
animation = "rotate"
frame = 272
frame = 32
playing = true
[node name="Sprite" type="Sprite" parent="."]
material = SubResource( 6 )
position = Vector2( 0.144981, 2.90382 )
scale = Vector2( 1, 1 )
texture = ExtResource( 317 )
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
stream = ExtResource( 316 )
volume_db = -9.044
pitch_scale = 1.1
bus = "Effects"
[connection signal="body_entered" from="." to="." method="_on_body_entered"]
[connection signal="finished" from="AudioStreamPlayer" to="." method="collected"]

View File

@ -10,7 +10,7 @@
[ext_resource path="res://src/Contraptions/Portal/Portal.tscn" type="PackedScene" id=8]
[ext_resource path="res://src/Actors/BlobbyCam.tscn" type="PackedScene" id=9]
[ext_resource path="res://src/Utilities/SignalManager.tscn" type="PackedScene" id=10]
[ext_resource path="res://src/Actors/Enemies/Beings/WhatAreFrog.tscn" type="PackedScene" id=11]
[ext_resource path="res://src/Actors/Friendlies/WhatAreFrog.tscn" type="PackedScene" id=11]
[ext_resource path="res://src/Environment/Grass/ShaderGrass.tscn" type="PackedScene" id=12]
[ext_resource path="res://assets/sounds/AMBIENCE_SciFi_Large_Space_Hangar_Deep_Smooth_loop_stereo.wav" type="AudioStream" id=13]
[ext_resource path="res://assets/sounds/Hurry! (LOOP).wav" type="AudioStream" id=14]

View File

@ -14,7 +14,7 @@
[ext_resource path="res://src/Environment/GreenHouseTiles.tres" type="TileSet" id=12]
[ext_resource path="res://src/Environment/DropThroughPlatforms.tres" type="TileSet" id=13]
[ext_resource path="res://src/Platforms/FlyingPlatform.tscn" type="PackedScene" id=14]
[ext_resource path="res://src/Actors/Enemies/Beings/Caterpillar.tscn" type="PackedScene" id=15]
[ext_resource path="res://src/Actors/Enemies/Caterpillar.tscn" type="PackedScene" id=15]
[ext_resource path="res://src/BenefitialObjects/Coin.tscn" type="PackedScene" id=16]
[ext_resource path="res://src/Platforms/FlyingPlatformSmol.tscn" type="PackedScene" id=17]

View File

@ -14,9 +14,9 @@
[ext_resource path="res://src/ObstacleObjects/Spikes.tscn" type="PackedScene" id=12]
[ext_resource path="res://src/BenefitialObjects/Coin.tscn" type="PackedScene" id=13]
[ext_resource path="res://src/Contraptions/GateBlock.tscn" type="PackedScene" id=14]
[ext_resource path="res://src/Actors/Enemies/Beings/Caterpillar.tscn" type="PackedScene" id=15]
[ext_resource path="res://src/Actors/Enemies/Caterpillar.tscn" type="PackedScene" id=15]
[ext_resource path="res://src/Platforms/FlyingPlatform.tscn" type="PackedScene" id=16]
[ext_resource path="res://src/Actors/Enemies/Beings/DartingEnemy.tscn" type="PackedScene" id=17]
[ext_resource path="res://src/Actors/Enemies/DartingEnemy.tscn" type="PackedScene" id=17]
[ext_resource path="res://src/Contraptions/Triggers/GateButton.tscn" type="PackedScene" id=18]
[ext_resource path="res://src/Platforms/FlyingLaserCutter.tscn" type="PackedScene" id=19]

View File

@ -12,7 +12,7 @@
[ext_resource path="res://src/Actors/BlobbyCam.tscn" type="PackedScene" id=10]
[ext_resource path="res://src/Contraptions/Portal/Portal.tscn" type="PackedScene" id=11]
[ext_resource path="res://src/Platforms/FlyingPlatformSmol.tscn" type="PackedScene" id=12]
[ext_resource path="res://src/Actors/Enemies/Beings/Flyer.tscn" type="PackedScene" id=13]
[ext_resource path="res://src/Actors/Enemies/Flyer.tscn" type="PackedScene" id=13]
[ext_resource path="res://src/BenefitialObjects/Coin.tscn" type="PackedScene" id=14]
[ext_resource path="res://src/Contraptions/VendingMachine.tscn" type="PackedScene" id=19]

View File

@ -12,12 +12,12 @@
[ext_resource path="res://src/Actors/BlobbyCam.tscn" type="PackedScene" id=10]
[ext_resource path="res://src/Contraptions/Portal/Portal.tscn" type="PackedScene" id=11]
[ext_resource path="res://src/Contraptions/GateBlock.tscn" type="PackedScene" id=12]
[ext_resource path="res://src/Actors/Enemies/Beings/Flyer.gd" type="Script" id=13]
[ext_resource path="res://src/Actors/Enemies/Flyer.gd" type="Script" id=13]
[ext_resource path="res://src/StateMachines/FlyerStateMachine.gd" type="Script" id=14]
[ext_resource path="res://assets/meta/new_dynamicfont.tres" type="DynamicFont" id=15]
[ext_resource path="res://assets/enemy/flyer-sheet.png" type="Texture" id=16]
[ext_resource path="res://src/Actors/Enemies/Beings/BoundFrog.gd" type="Script" id=17]
[ext_resource path="res://src/Actors/Enemies/Beings/WhatAreFrog.tscn" type="PackedScene" id=18]
[ext_resource path="res://src/Actors/Friendlies/BoundFrog.gd" type="Script" id=17]
[ext_resource path="res://src/Actors/Friendlies/WhatAreFrog.tscn" type="PackedScene" id=18]
[ext_resource path="res://src/Contraptions/Rope/RopeAnchor.tscn" type="PackedScene" id=19]
[ext_resource path="res://src/Contraptions/Triggers/GateButton.tscn" type="PackedScene" id=20]
[ext_resource path="res://src/Contraptions/Triggers/FrogFreeButton.tscn" type="PackedScene" id=21]

View File

@ -1,15 +1,15 @@
[gd_scene load_steps=21 format=2]
[ext_resource path="res://src/Actors/Enemies/Beings/DartingEnemy.tscn" type="PackedScene" id=1]
[ext_resource path="res://src/Actors/Enemies/DartingEnemy.tscn" type="PackedScene" id=1]
[ext_resource path="res://src/Utilities/SignalManager.tscn" type="PackedScene" id=2]
[ext_resource path="res://src/BenefitialObjects/Coin.tscn" type="PackedScene" id=3]
[ext_resource path="res://src/Actors/Enemies/Beings/Flyer.tscn" type="PackedScene" id=4]
[ext_resource path="res://src/Actors/Enemies/Flyer.tscn" type="PackedScene" id=4]
[ext_resource path="res://src/Contraptions/Triggers/GateButton.tscn" type="PackedScene" id=5]
[ext_resource path="res://src/Contraptions/GateBlock.tscn" type="PackedScene" id=6]
[ext_resource path="res://src/Platforms/legacy/DropThroughPlatform.tscn" type="PackedScene" id=7]
[ext_resource path="res://src/Contraptions/Triggers/FrogFreeButton.tscn" type="PackedScene" id=8]
[ext_resource path="res://src/Actors/BlobbyCam.tscn" type="PackedScene" id=9]
[ext_resource path="res://src/Actors/Enemies/Beings/BoundFrog.tscn" type="PackedScene" id=10]
[ext_resource path="res://src/Actors/Friendlies/BoundFrog.tscn" type="PackedScene" id=10]
[ext_resource path="res://src/Utilities/LevelState.tscn" type="PackedScene" id=11]
[ext_resource path="res://src/Platforms/Spring/Spring.tscn" type="PackedScene" id=12]
[ext_resource path="res://src/UserInterface/UserInterface.tscn" type="PackedScene" id=13]

View File

@ -8,9 +8,9 @@
[ext_resource path="res://src/Contraptions/Portal/Portal.tscn" type="PackedScene" id=7]
[ext_resource path="res://src/Environment/Legacy/AlienShipTileSet.tres" type="TileSet" id=8]
[ext_resource path="res://src/Levels/Templates/LevelTemplate.gd" type="Script" id=9]
[ext_resource path="res://src/Actors/Enemies/Beings/SimpleEnemy.tscn" type="PackedScene" id=10]
[ext_resource path="res://src/Actors/Enemies/Beings/Flyer.tscn" type="PackedScene" id=11]
[ext_resource path="res://src/Actors/Enemies/Beings/BoundFrog.tscn" type="PackedScene" id=12]
[ext_resource path="res://src/Actors/Enemies/SimpleEnemy.tscn" type="PackedScene" id=10]
[ext_resource path="res://src/Actors/Enemies/Flyer.tscn" type="PackedScene" id=11]
[ext_resource path="res://src/Actors/Friendlies/BoundFrog.tscn" type="PackedScene" id=12]
[ext_resource path="res://src/Contraptions/Triggers/FrogFreeButton.tscn" type="PackedScene" id=13]
[ext_resource path="res://src/ObstacleObjects/Spikes.tscn" type="PackedScene" id=14]
[ext_resource path="res://src/Contraptions/Triggers/ElevatorButton.tscn" type="PackedScene" id=15]

View File

@ -3,14 +3,14 @@
[ext_resource path="res://src/ObstacleObjects/PitArea.tscn" type="PackedScene" id=1]
[ext_resource path="res://src/UserInterface/UserInterface.tscn" type="PackedScene" id=2]
[ext_resource path="res://src/Contraptions/Portal/Portal.tscn" type="PackedScene" id=3]
[ext_resource path="res://src/Actors/Enemies/Beings/SimpleEnemy.tscn" type="PackedScene" id=4]
[ext_resource path="res://src/Actors/Enemies/SimpleEnemy.tscn" type="PackedScene" id=4]
[ext_resource path="res://src/Actors/BlobbyCam.tscn" type="PackedScene" id=5]
[ext_resource path="res://src/Actors/Blobby/Blobby.tscn" type="PackedScene" id=6]
[ext_resource path="res://src/BenefitialObjects/Coin.tscn" type="PackedScene" id=7]
[ext_resource path="res://src/Utilities/LevelState.tscn" type="PackedScene" id=8]
[ext_resource path="res://src/Environment/Grass/ShaderGrass.tscn" type="PackedScene" id=9]
[ext_resource path="res://src/Utilities/SignalManager.tscn" type="PackedScene" id=10]
[ext_resource path="res://src/Actors/Enemies/Beings/WhatAreFrog.tscn" type="PackedScene" id=11]
[ext_resource path="res://src/Actors/Friendlies/WhatAreFrog.tscn" type="PackedScene" id=11]
[ext_resource path="res://src/BenefitialObjects/SavePoint.tscn" type="PackedScene" id=12]
[ext_resource path="res://src/Contraptions/Triggers/ElevatorButton.tscn" type="PackedScene" id=13]
[ext_resource path="res://src/Platforms/legacy/DropThroughPlatform.tscn" type="PackedScene" id=14]

View File

@ -9,7 +9,7 @@
[ext_resource path="res://src/Platforms/legacy/FlyingPlatformClean.tscn" type="PackedScene" id=40]
[ext_resource path="res://src/Contraptions/Portal/Portal.tscn" type="PackedScene" id=41]
[ext_resource path="res://src/Platforms/legacy/DropThroughPlatform.tscn" type="PackedScene" id=42]
[ext_resource path="res://src/Actors/Enemies/Beings/Flyer.tscn" type="PackedScene" id=45]
[ext_resource path="res://src/Actors/Enemies/Flyer.tscn" type="PackedScene" id=45]
[ext_resource path="res://src/Actors/Blobby/Blobby.tscn" type="PackedScene" id=46]
[ext_resource path="res://src/UserInterface/UserInterface.tscn" type="PackedScene" id=47]
[ext_resource path="res://src/Levels/Level 3.gd" type="Script" id=48]

View File

@ -4,8 +4,8 @@
[ext_resource path="res://src/Utilities/SignalManager.tscn" type="PackedScene" id=2]
[ext_resource path="res://src/Utilities/LevelState.tscn" type="PackedScene" id=3]
[ext_resource path="res://src/Actors/BlobbyCam.tscn" type="PackedScene" id=4]
[ext_resource path="res://src/Actors/Enemies/Beings/BoundFrog.tscn" type="PackedScene" id=5]
[ext_resource path="res://src/Actors/Enemies/Beings/Flyer.tscn" type="PackedScene" id=6]
[ext_resource path="res://src/Actors/Friendlies/BoundFrog.tscn" type="PackedScene" id=5]
[ext_resource path="res://src/Actors/Enemies/Flyer.tscn" type="PackedScene" id=6]
[ext_resource path="res://src/BenefitialObjects/Coin.tscn" type="PackedScene" id=7]
[ext_resource path="res://src/Actors/Blobby/Blobby.tscn" type="PackedScene" id=8]
[ext_resource path="res://src/UserInterface/UserInterface.tscn" type="PackedScene" id=9]

View File

@ -38,13 +38,13 @@
[ext_resource path="res://src/Utilities/SignalManager.tscn" type="PackedScene" id=36]
[ext_resource path="res://src/Utilities/LevelState.tscn" type="PackedScene" id=37]
[ext_resource path="res://src/Actors/BlobbyCam.tscn" type="PackedScene" id=38]
[ext_resource path="res://src/Actors/Enemies/Beings/BoundFrog.tscn" type="PackedScene" id=39]
[ext_resource path="res://src/Actors/Friendlies/BoundFrog.tscn" type="PackedScene" id=39]
[ext_resource path="res://src/Platforms/legacy/FlyingPlatformClean.tscn" type="PackedScene" id=40]
[ext_resource path="res://src/Contraptions/Portal/Portal.tscn" type="PackedScene" id=41]
[ext_resource path="res://src/Platforms/legacy/DropThroughPlatform.tscn" type="PackedScene" id=42]
[ext_resource path="res://src/Contraptions/Triggers/FrogFreeButton.tscn" type="PackedScene" id=43]
[ext_resource path="res://src/Contraptions/Triggers/ElevatorButton.tscn" type="PackedScene" id=44]
[ext_resource path="res://src/Actors/Enemies/Beings/Flyer.tscn" type="PackedScene" id=45]
[ext_resource path="res://src/Actors/Enemies/Flyer.tscn" type="PackedScene" id=45]
[ext_resource path="res://src/Actors/Blobby/Blobby.tscn" type="PackedScene" id=46]
[ext_resource path="res://src/UserInterface/UserInterface.tscn" type="PackedScene" id=47]

View File

@ -4,11 +4,11 @@
[ext_resource path="res://src/Utilities/SignalManager.tscn" type="PackedScene" id=2]
[ext_resource path="res://src/Utilities/LevelState.tscn" type="PackedScene" id=3]
[ext_resource path="res://src/Actors/BlobbyCam.tscn" type="PackedScene" id=4]
[ext_resource path="res://src/Actors/Enemies/Beings/SmortEnemy.tscn" type="PackedScene" id=5]
[ext_resource path="res://src/Actors/Enemies/Beings/SimpleEnemy.tscn" type="PackedScene" id=6]
[ext_resource path="res://src/Actors/Enemies/SmortEnemy.tscn" type="PackedScene" id=5]
[ext_resource path="res://src/Actors/Enemies/SimpleEnemy.tscn" type="PackedScene" id=6]
[ext_resource path="res://src/ObstacleObjects/Spikes.tscn" type="PackedScene" id=7]
[ext_resource path="res://src/Actors/Enemies/Beings/Caterpillar.tscn" type="PackedScene" id=8]
[ext_resource path="res://src/Actors/Enemies/Beings/DartingEnemy.tscn" type="PackedScene" id=9]
[ext_resource path="res://src/Actors/Enemies/Caterpillar.tscn" type="PackedScene" id=8]
[ext_resource path="res://src/Actors/Enemies/DartingEnemy.tscn" type="PackedScene" id=9]
[ext_resource path="res://src/Actors/Blobby/Blobby.tscn" type="PackedScene" id=10]
[ext_resource path="res://src/UserInterface/UserInterface.tscn" type="PackedScene" id=11]

View File

@ -6,7 +6,7 @@
[ext_resource path="res://src/Utilities/SignalManager.tscn" type="PackedScene" id=5]
[ext_resource path="res://src/Contraptions/Portal/Portal.tscn" type="PackedScene" id=6]
[ext_resource path="res://src/Levels/xEnemy Test Level.tscn" type="PackedScene" id=7]
[ext_resource path="res://src/Actors/Enemies/Beings/Flyer.tscn" type="PackedScene" id=8]
[ext_resource path="res://src/Actors/Enemies/Flyer.tscn" type="PackedScene" id=8]
[ext_resource path="res://src/Utilities/LevelState.tscn" type="PackedScene" id=9]
[ext_resource path="res://src/Contraptions/Triggers/ThreeWhyButtons.tscn" type="PackedScene" id=10]
[ext_resource path="res://src/Actors/Blobby/Blobby.tscn" type="PackedScene" id=12]

View File

@ -7,12 +7,12 @@
[ext_resource path="res://src/Contraptions/Portal/Portal.tscn" type="PackedScene" id=6]
[ext_resource path="res://src/Levels/xEnemy Test Level.tscn" type="PackedScene" id=7]
[ext_resource path="res://src/Platforms/FlyingLaserCutter.tscn" type="PackedScene" id=8]
[ext_resource path="res://src/Actors/Enemies/Beings/BoundFrog.tscn" type="PackedScene" id=9]
[ext_resource path="res://src/Actors/Friendlies/BoundFrog.tscn" type="PackedScene" id=9]
[ext_resource path="res://src/Contraptions/Triggers/ThreeWhyButtons.tscn" type="PackedScene" id=10]
[ext_resource path="res://src/ObstacleObjects/Spikes.tscn" type="PackedScene" id=11]
[ext_resource path="res://src/Actors/Blobby/Blobby.tscn" type="PackedScene" id=12]
[ext_resource path="res://src/UserInterface/UserInterface.tscn" type="PackedScene" id=13]
[ext_resource path="res://src/Actors/Enemies/Beings/Flyer.tscn" type="PackedScene" id=14]
[ext_resource path="res://src/Actors/Enemies/Flyer.tscn" type="PackedScene" id=14]
[ext_resource path="res://src/Platforms/Spring/SpringPlatform.tscn" type="PackedScene" id=15]
[ext_resource path="res://src/Utilities/SignalManager.tscn" type="PackedScene" id=16]
[ext_resource path="res://src/Utilities/LevelState.tscn" type="PackedScene" id=17]

View File

@ -1,4 +1,4 @@
[gd_resource type="AudioBusLayout" load_steps=7 format=2]
[gd_resource type="AudioBusLayout" load_steps=9 format=2]
[sub_resource type="AudioEffectPitchShift" id=1]
resource_name = "PitchShift"
@ -33,13 +33,19 @@ resource_name = "Phaser"
[sub_resource type="AudioEffectCompressor" id=6]
resource_name = "Compressor"
[sub_resource type="AudioEffectHighPassFilter" id=7]
resource_name = "HighPassFilter"
[sub_resource type="AudioEffectLowPassFilter" id=8]
resource_name = "LowPassFilter"
cutoff_hz = 3000.0
[resource]
bus/0/volume_db = -0.0705032
bus/1/name = "Music"
bus/1/solo = false
bus/1/mute = false
bus/1/bypass_fx = false
bus/1/volume_db = -0.00606537
bus/1/volume_db = 0.0
bus/1/send = "Master"
bus/1/effect/0/effect = SubResource( 1 )
bus/1/effect/0/enabled = false
@ -61,7 +67,11 @@ bus/3/name = "UI"
bus/3/solo = false
bus/3/mute = false
bus/3/bypass_fx = false
bus/3/volume_db = -0.0727253
bus/3/volume_db = 0.0
bus/3/send = "Master"
bus/3/effect/0/effect = SubResource( 6 )
bus/3/effect/0/enabled = true
bus/3/effect/1/effect = SubResource( 7 )
bus/3/effect/1/enabled = false
bus/3/effect/2/effect = SubResource( 8 )
bus/3/effect/2/enabled = true

View File

@ -3,9 +3,6 @@ extends AudibleButton
export(String, FILE) var next_scene_path: String = ""
onready var selected_level_base_path: String = "res://src/Levels/"
func _ready():
self.grab_focus()
func _on_button_up() -> void:
get_tree().change_scene(next_scene_path)
get_tree().get_current_scene().queue_free()

View File

@ -37,6 +37,7 @@ tracks/0/keys = {
[node name="HUD" type="Control"]
pause_mode = 2
visible = false
anchor_right = 1.0
anchor_bottom = 1.0
mouse_filter = 1

View File

@ -4,7 +4,7 @@ extends Control
onready var signalManager := get_tree().root.get_child(4).get_node("%SignalManager")
onready var levelState := get_tree().root.get_child(4).get_node("%LevelState")
onready var current_scene := get_tree().get_current_scene()
onready var pause_overlay: ColorRect = get_node("PauseOverlay")
onready var pause_overlay: = get_node("PauseOverlay")
onready var pause_title: Label = get_node("PauseOverlay/Title")
var paused := false setget set_paused
@ -13,9 +13,25 @@ var block_ui_cancel = false
func _ready():
#signalManager.connect("player_died", self, "_on_GlobalState_player_died")
$ControlsMenu.visible = false
$ControlsMenu.set_process_input(false)
$AudioMenu.set_process_input(false)
signalManager.connect("game_paused", self, "set_paused")
pass
func open_audio_menu():
block_ui_cancel = true
pause_overlay.visible = false
$AudioMenu.visible = true
$AudioMenu.set_process_input(true)
$"%MasterSlider".grab_focus()
func close_audio_menu():
$AudioMenu.visible = false
pause_overlay.visible = true
$AudioMenu.set_process_input(false)
$"%Continue".grab_focus()
get_tree().set_input_as_handled()
func _on_GlobalState_player_died() -> void:
self.paused = true
@ -46,6 +62,7 @@ func set_paused(value: bool) -> void:
func _on_Controls_button_up() -> void:
$ControlsMenu.visible = true
$ControlsMenu.set_process_input(true)
block_ui_cancel = true
$PauseOverlay.visible = false
pause_overlay.visible = false
$"%ProfilesMenu".grab_focus()

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=34 format=2]
[gd_scene load_steps=39 format=2]
[ext_resource path="res://assets/meta/ui_theme.tres" type="Theme" id=1]
[ext_resource path="res://assets/ui/sci-fi-godot-theme/sci-fi-theme.tres" type="Theme" id=2]
@ -19,11 +19,26 @@
[ext_resource path="res://src/UserInterface/Screens/MainMenu/ControlsMenu/ProfilesMenu.gd" type="Script" id=17]
[ext_resource path="res://assets/ui/fonts/Kenney Thick.ttf" type="DynamicFontData" id=18]
[ext_resource path="res://assets/ui/fonts/kenny_thick.tres" type="DynamicFont" id=19]
[ext_resource path="res://src/UserInterface/Buttons/AudibleButton.gd" type="Script" id=20]
[ext_resource path="res://assets/ui/Screenshot 2023-05-23 160521.png" type="Texture" id=21]
[ext_resource path="res://assets/meta/montserrat_extrabold.otf" type="DynamicFontData" id=22]
[ext_resource path="res://src/UserInterface/Buttons/AudibleButton.gd" type="Script" id=23]
[ext_resource path="res://assets/sounds/Shopping For The Future (LOOP).wav" type="AudioStream" id=24]
[ext_resource path="res://src/UserInterface/Screens/MainMenu/AudioMenu.gd" type="Script" id=26]
[ext_resource path="res://src/UserInterface/Screens/MainMenu/AudioSlider.gd" type="Script" id=28]
[ext_resource path="res://src/UserInterface/Buttons/MenuNavigationButton.gd" type="Script" id=29]
[sub_resource type="Gradient" id=17]
interpolation_mode = 2
offsets = PoolRealArray( 0, 0.797721 )
colors = PoolColorArray( 0, 0, 0, 0, 0, 0, 0, 0.419608 )
[sub_resource type="GradientTexture2D" id=14]
gradient = SubResource( 17 )
width = 640
height = 360
fill = 1
fill_from = Vector2( 0.5, 0.5 )
fill_to = Vector2( 1, 1 )
[sub_resource type="DynamicFont" id=1]
size = 42
@ -56,6 +71,10 @@ shader_param/transparency = 0.778
size = 20
font_data = ExtResource( 22 )
[sub_resource type="DynamicFont" id=16]
size = 42
font_data = ExtResource( 22 )
[sub_resource type="DynamicFont" id=9]
size = 20
font_data = ExtResource( 18 )
@ -69,7 +88,6 @@ theme = ExtResource( 2 )
script = ExtResource( 5 )
[node name="ControlsMenu" type="Control" parent="."]
pause_mode = 2
physics_interpolation_mode = 1
unique_name_in_owner = true
visible = false
@ -81,10 +99,10 @@ size_flags_vertical = 0
theme = ExtResource( 1 )
script = ExtResource( 10 )
[node name="PauseOverlay" type="ColorRect" parent="ControlsMenu"]
[node name="GradientTexture" type="TextureRect" parent="ControlsMenu"]
anchor_right = 1.0
anchor_bottom = 1.0
color = Color( 0, 0, 0, 0.156863 )
texture = SubResource( 14 )
[node name="InputMapper" type="Node" parent="ControlsMenu"]
unique_name_in_owner = true
@ -431,12 +449,248 @@ custom_fonts/font = ExtResource( 19 )
text = "Quit Don't Save"
script = ExtResource( 23 )
[node name="PauseOverlay" type="ColorRect" parent="."]
[node name="AudioMenu" type="Control" parent="."]
physics_interpolation_mode = 1
visible = false
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
input_pass_on_modal_close_click = false
size_flags_horizontal = 3
size_flags_vertical = 3
theme = ExtResource( 2 )
script = ExtResource( 26 )
[node name="GradientTexture" type="TextureRect" parent="AudioMenu"]
anchor_right = 1.0
anchor_bottom = 1.0
texture = SubResource( 14 )
[node name="Titel" type="Label" parent="AudioMenu"]
anchor_left = 0.5
anchor_right = 0.5
margin_left = -170.0
margin_right = 170.0
margin_bottom = 52.0
grow_horizontal = 2
size_flags_horizontal = 0
size_flags_vertical = 0
custom_fonts/font = SubResource( 16 )
text = "Audio Menu"
align = 1
valign = 1
[node name="Panel" type="Panel" parent="AudioMenu"]
anchor_left = 0.5
anchor_top = 1.0
anchor_right = 0.5
anchor_bottom = 1.0
margin_left = -310.0
margin_top = -300.0
margin_right = 310.0
margin_bottom = -10.0
grow_horizontal = 2
grow_vertical = 2
focus_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 4
theme = ExtResource( 2 )
[node name="Back" type="Button" parent="AudioMenu/Panel"]
anchor_left = 0.5
anchor_top = 0.95
anchor_right = 0.5
anchor_bottom = 0.95
margin_left = -68.0
margin_top = -24.95
margin_right = 69.8
margin_bottom = 0.0499878
grow_horizontal = 2
grow_vertical = 2
rect_min_size = Vector2( 40, 20 )
input_pass_on_modal_close_click = false
size_flags_horizontal = 0
size_flags_vertical = 0
theme = ExtResource( 2 )
text = "Back"
script = ExtResource( 29 )
next_screen_path = "res://src/UserInterface/Screens/MainMenu/MainScreen.tscn"
[node name="KeymapViewer" type="VBoxContainer" parent="AudioMenu/Panel"]
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
margin_left = -200.0
margin_top = -130.0
margin_right = 200.0
margin_bottom = 114.0
grow_horizontal = 2
grow_vertical = 2
custom_constants/separation = 40
[node name="Label" type="Label" parent="AudioMenu/Panel/KeymapViewer"]
margin_right = 400.0
margin_bottom = 9.0
text = "Volume"
align = 1
[node name="HSplitContainer" type="GridContainer" parent="AudioMenu/Panel/KeymapViewer"]
margin_top = 49.0
margin_right = 400.0
margin_bottom = 244.0
grow_horizontal = 2
grow_vertical = 2
size_flags_vertical = 3
custom_constants/hseparation = 50
columns = 2
[node name="VBoxContainer" type="VBoxContainer" parent="AudioMenu/Panel/KeymapViewer/HSplitContainer"]
margin_right = 57.0
margin_bottom = 195.0
grow_horizontal = 2
grow_vertical = 2
size_flags_vertical = 3
alignment = 1
[node name="Label4" type="Label" parent="AudioMenu/Panel/KeymapViewer/HSplitContainer/VBoxContainer"]
margin_right = 57.0
margin_bottom = 45.0
size_flags_horizontal = 3
size_flags_vertical = 3
text = "Master"
align = 1
[node name="Label" type="Label" parent="AudioMenu/Panel/KeymapViewer/HSplitContainer/VBoxContainer"]
margin_top = 49.0
margin_right = 57.0
margin_bottom = 95.0
size_flags_horizontal = 3
size_flags_vertical = 3
text = "Music"
align = 1
[node name="Label2" type="Label" parent="AudioMenu/Panel/KeymapViewer/HSplitContainer/VBoxContainer"]
margin_top = 99.0
margin_right = 57.0
margin_bottom = 145.0
size_flags_vertical = 3
text = "Effects"
align = 1
[node name="Label3" type="Label" parent="AudioMenu/Panel/KeymapViewer/HSplitContainer/VBoxContainer"]
margin_top = 149.0
margin_right = 57.0
margin_bottom = 195.0
size_flags_vertical = 3
text = "UI"
align = 1
[node name="VBoxContainer2" type="VBoxContainer" parent="AudioMenu/Panel/KeymapViewer/HSplitContainer"]
margin_left = 107.0
margin_right = 400.0
margin_bottom = 195.0
size_flags_horizontal = 7
size_flags_vertical = 3
alignment = 1
[node name="VBoxContainer" type="VBoxContainer" parent="AudioMenu/Panel/KeymapViewer/HSplitContainer/VBoxContainer2"]
margin_right = 293.0
margin_bottom = 45.0
size_flags_vertical = 3
[node name="MasterSlider" type="HSlider" parent="AudioMenu/Panel/KeymapViewer/HSplitContainer/VBoxContainer2/VBoxContainer"]
unique_name_in_owner = true
margin_right = 293.0
margin_bottom = 7.0
size_flags_vertical = 1
script = ExtResource( 28 )
[node name="Label" type="Label" parent="AudioMenu/Panel/KeymapViewer/HSplitContainer/VBoxContainer2/VBoxContainer/MasterSlider"]
margin_top = 11.0
margin_right = 271.0
margin_bottom = 20.0
rect_scale = Vector2( 1.08059, 1 )
size_flags_horizontal = 3
size_flags_vertical = 3
text = "80%"
align = 1
valign = 1
[node name="VBoxContainer2" type="VBoxContainer" parent="AudioMenu/Panel/KeymapViewer/HSplitContainer/VBoxContainer2"]
margin_top = 49.0
margin_right = 293.0
margin_bottom = 56.0
size_flags_vertical = 2
[node name="HSlider" type="HSlider" parent="AudioMenu/Panel/KeymapViewer/HSplitContainer/VBoxContainer2/VBoxContainer2"]
margin_right = 293.0
margin_bottom = 7.0
size_flags_vertical = 2
script = ExtResource( 28 )
audio_bus = "Music"
[node name="Label" type="Label" parent="AudioMenu/Panel/KeymapViewer/HSplitContainer/VBoxContainer2/VBoxContainer2/HSlider"]
margin_top = 11.0
margin_right = 293.0
margin_bottom = 20.0
size_flags_horizontal = 3
size_flags_vertical = 3
text = "80"
align = 1
[node name="VBoxContainer3" type="VBoxContainer" parent="AudioMenu/Panel/KeymapViewer/HSplitContainer/VBoxContainer2"]
margin_top = 99.0
margin_right = 293.0
margin_bottom = 145.0
grow_horizontal = 2
grow_vertical = 2
size_flags_vertical = 3
[node name="HSlider3" type="HSlider" parent="AudioMenu/Panel/KeymapViewer/HSplitContainer/VBoxContainer2/VBoxContainer3"]
margin_right = 293.0
margin_bottom = 7.0
size_flags_vertical = 1
script = ExtResource( 28 )
audio_bus = "Effects"
[node name="Label" type="Label" parent="AudioMenu/Panel/KeymapViewer/HSplitContainer/VBoxContainer2/VBoxContainer3/HSlider3"]
margin_top = 11.0
margin_right = 292.0
margin_bottom = 20.0
text = "80"
align = 1
[node name="VBoxContainer4" type="VBoxContainer" parent="AudioMenu/Panel/KeymapViewer/HSplitContainer/VBoxContainer2"]
margin_top = 149.0
margin_right = 293.0
margin_bottom = 195.0
grow_horizontal = 2
grow_vertical = 2
size_flags_vertical = 3
[node name="HSlider3" type="HSlider" parent="AudioMenu/Panel/KeymapViewer/HSplitContainer/VBoxContainer2/VBoxContainer4"]
margin_right = 293.0
margin_bottom = 7.0
size_flags_vertical = 1
script = ExtResource( 28 )
audio_bus = "UI"
[node name="Label" type="Label" parent="AudioMenu/Panel/KeymapViewer/HSplitContainer/VBoxContainer2/VBoxContainer4/HSlider3"]
margin_top = 11.0
margin_right = 293.0
margin_bottom = 20.0
text = "80"
align = 1
[node name="PauseOverlay" type="TextureRect" parent="."]
physics_interpolation_mode = 1
unique_name_in_owner = true
visible = false
anchor_right = 1.0
anchor_bottom = 1.0
color = Color( 0, 0, 0, 0.235294 )
texture = SubResource( 14 )
[node name="Title" type="Label" parent="PauseOverlay"]
margin_right = 170.0
@ -448,10 +702,10 @@ anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
margin_left = -119.5
margin_top = -138.5
margin_right = 119.5
margin_bottom = 138.5
margin_left = -119.0
margin_top = -120.0
margin_right = 120.0
margin_bottom = 149.0
theme = ExtResource( 2 )
[node name="VBoxContainer" type="VBoxContainer" parent="PauseOverlay/Panel"]
@ -468,7 +722,7 @@ focus_mode = 2
[node name="Continue" type="Button" parent="PauseOverlay/Panel/VBoxContainer"]
unique_name_in_owner = true
margin_right = 222.0
margin_bottom = 59.0
margin_bottom = 46.0
focus_neighbour_top = NodePath("../MainMenuButton")
focus_neighbour_bottom = NodePath("../Controls")
size_flags_vertical = 3
@ -476,24 +730,34 @@ text = "Continue"
script = ExtResource( 6 )
[node name="Controls" type="Button" parent="PauseOverlay/Panel/VBoxContainer"]
margin_top = 63.0
margin_top = 50.0
margin_right = 222.0
margin_bottom = 123.0
margin_bottom = 97.0
focus_neighbour_top = NodePath("../Continue")
focus_neighbour_bottom = NodePath("../RetryButton")
focus_neighbour_bottom = NodePath("../Audio")
size_flags_vertical = 3
text = "Controls"
script = ExtResource( 20 )
script = ExtResource( 23 )
[node name="Audio" type="Button" parent="PauseOverlay/Panel/VBoxContainer"]
margin_top = 101.0
margin_right = 222.0
margin_bottom = 148.0
focus_neighbour_top = NodePath("../Controls")
focus_neighbour_bottom = NodePath("../RetryButton")
size_flags_vertical = 3
text = "Audio"
script = ExtResource( 23 )
[node name="RetryButton" parent="PauseOverlay/Panel/VBoxContainer" instance=ExtResource( 4 )]
margin_top = 127.0
margin_top = 152.0
margin_right = 222.0
margin_bottom = 186.0
focus_neighbour_top = NodePath("../Controls")
margin_bottom = 199.0
focus_neighbour_top = NodePath("../Audio")
focus_neighbour_bottom = NodePath("../MainMenuButton")
[node name="MainMenuButton" parent="PauseOverlay/Panel/VBoxContainer" instance=ExtResource( 3 )]
margin_top = 190.0
margin_top = 203.0
margin_right = 222.0
margin_bottom = 250.0
focus_neighbour_top = NodePath("../RetryButton")
@ -526,5 +790,7 @@ volume_db = -10.0
[connection signal="button_up" from="ControlsMenu/ReallyQuitMenu/VBoxContainer/SaveNQuit" to="ControlsMenu/ReallyQuitMenu/VBoxContainer/SaveNQuit" method="_on_button_up"]
[connection signal="button_up" from="ControlsMenu/ReallyQuitMenu/VBoxContainer/ContinueEdit" to="ControlsMenu/ReallyQuitMenu" method="close"]
[connection signal="button_up" from="ControlsMenu/ReallyQuitMenu/VBoxContainer/QuitDontSave" to="ControlsMenu" method="close"]
[connection signal="button_up" from="AudioMenu/Panel/Back" to="." method="close_audio_menu"]
[connection signal="button_up" from="PauseOverlay/Panel/VBoxContainer/Continue" to="PauseOverlay/Panel/VBoxContainer/Continue" method="_on_button_up"]
[connection signal="button_up" from="PauseOverlay/Panel/VBoxContainer/Controls" to="." method="_on_Controls_button_up"]
[connection signal="button_up" from="PauseOverlay/Panel/VBoxContainer/Audio" to="." method="open_audio_menu"]

View File

@ -0,0 +1,10 @@
extends Control
func _ready() -> void:
if visible:
$"%MasterSlider".grab_focus()
func _input(event: InputEvent) -> void:
if visible && event.is_action("ui_cancel"):
$Panel/Back.emit_signal("button_up")

View File

@ -1,19 +1,31 @@
[gd_scene load_steps=10 format=2]
[gd_scene load_steps=11 format=2]
[ext_resource path="res://src/UserInterface/Screens/MainMenu/ControlsMenu/SavedCheckBackButton.gd" type="Script" id=2]
[ext_resource path="res://src/UserInterface/Screens/MainMenu/ControlsMenu/ControlsMenu.gd" type="Script" id=5]
[ext_resource path="res://src/Utilities/SignalManager.tscn" type="PackedScene" id=7]
[ext_resource path="res://src/UserInterface/Screens/MainMenu/AudioSlider.gd" type="Script" id=1]
[ext_resource path="res://src/UserInterface/Buttons/MenuNavigationButton.gd" type="Script" id=2]
[ext_resource path="res://src/UserInterface/Screens/MainMenu/AudioMenu.gd" type="Script" id=3]
[ext_resource path="res://assets/environment/background/Spaceship-Wall.png" type="Texture" id=9]
[ext_resource path="res://assets/environment/background/starry-space.png" type="Texture" id=10]
[ext_resource path="res://src/UserInterface/Screens/MainMenu/ControlsMenu/InputMapper.gd" type="Script" id=15]
[ext_resource path="res://assets/meta/montserrat_extrabold.otf" type="DynamicFontData" id=18]
[ext_resource path="res://assets/ui/sci-fi-godot-theme/sci-fi-theme.tres" type="Theme" id=20]
[sub_resource type="DynamicFont" id=1]
[sub_resource type="Gradient" id=15]
interpolation_mode = 2
offsets = PoolRealArray( 0, 0.797721 )
colors = PoolColorArray( 0, 0, 0, 0, 0, 0, 0, 0.419608 )
[sub_resource type="GradientTexture2D" id=17]
gradient = SubResource( 15 )
width = 640
height = 360
fill = 1
fill_from = Vector2( 0.5, 0.5 )
fill_to = Vector2( 1, 1 )
[sub_resource type="DynamicFont" id=16]
size = 42
font_data = ExtResource( 18 )
[node name="ControlsMenu" type="Control"]
[node name="AudioMenu" type="Control"]
pause_mode = 1
anchor_right = 1.0
anchor_bottom = 1.0
@ -23,13 +35,7 @@ input_pass_on_modal_close_click = false
size_flags_horizontal = 3
size_flags_vertical = 3
theme = ExtResource( 20 )
script = ExtResource( 5 )
[node name="SignalManager" parent="." instance=ExtResource( 7 )]
[node name="InputMapper" type="Node" parent="."]
unique_name_in_owner = true
script = ExtResource( 15 )
script = ExtResource( 3 )
[node name="background" type="TextureRect" parent="."]
anchor_right = 1.0
@ -47,6 +53,11 @@ texture = ExtResource( 9 )
expand = true
stretch_mode = 1
[node name="GradientTexture" type="TextureRect" parent="."]
anchor_right = 1.0
anchor_bottom = 1.0
texture = SubResource( 17 )
[node name="Titel" type="Label" parent="."]
anchor_left = 0.5
anchor_right = 0.5
@ -56,7 +67,7 @@ margin_bottom = 52.0
grow_horizontal = 2
size_flags_horizontal = 0
size_flags_vertical = 0
custom_fonts/font = SubResource( 1 )
custom_fonts/font = SubResource( 16 )
text = "Audio Menu"
align = 1
valign = 1
@ -98,120 +109,169 @@ text = "Back"
script = ExtResource( 2 )
next_screen_path = "res://src/UserInterface/Screens/MainMenu/MainScreen.tscn"
[node name="KeymapViewer" type="VSplitContainer" parent="Panel"]
[node name="KeymapViewer" type="VBoxContainer" parent="Panel"]
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
margin_left = -271.0
margin_top = -136.0
margin_right = 271.0
margin_left = -200.0
margin_top = -130.0
margin_right = 200.0
margin_bottom = 114.0
grow_horizontal = 2
grow_vertical = 2
split_offset = 23
custom_constants/separation = 40
[node name="Label" type="Label" parent="Panel/KeymapViewer"]
margin_top = 11.0
margin_right = 542.0
margin_bottom = 20.0
margin_right = 400.0
margin_bottom = 9.0
text = "Volume"
align = 1
[node name="HSplitContainer" type="HSplitContainer" parent="Panel/KeymapViewer"]
margin_top = 44.0
margin_right = 542.0
margin_bottom = 250.0
size_flags_vertical = 3
split_offset = 200
[node name="VBoxContainer" type="VBoxContainer" parent="Panel/KeymapViewer/HSplitContainer"]
margin_right = 257.0
margin_bottom = 206.0
[node name="HSplitContainer" type="GridContainer" parent="Panel/KeymapViewer"]
margin_top = 49.0
margin_right = 400.0
margin_bottom = 244.0
grow_horizontal = 2
grow_vertical = 2
size_flags_vertical = 3
custom_constants/hseparation = 50
columns = 2
[node name="VBoxContainer" type="VBoxContainer" parent="Panel/KeymapViewer/HSplitContainer"]
margin_right = 57.0
margin_bottom = 195.0
grow_horizontal = 2
grow_vertical = 2
size_flags_vertical = 3
alignment = 1
[node name="Label3" type="Label" parent="Panel/KeymapViewer/HSplitContainer/VBoxContainer"]
margin_right = 257.0
margin_bottom = 66.0
[node name="Label4" type="Label" parent="Panel/KeymapViewer/HSplitContainer/VBoxContainer"]
margin_right = 57.0
margin_bottom = 45.0
size_flags_horizontal = 3
size_flags_vertical = 3
text = "UI"
text = "Master"
align = 1
[node name="Label" type="Label" parent="Panel/KeymapViewer/HSplitContainer/VBoxContainer"]
margin_top = 70.0
margin_right = 257.0
margin_bottom = 136.0
margin_top = 49.0
margin_right = 57.0
margin_bottom = 95.0
size_flags_horizontal = 3
size_flags_vertical = 3
text = "Music"
align = 1
[node name="Label2" type="Label" parent="Panel/KeymapViewer/HSplitContainer/VBoxContainer"]
margin_top = 140.0
margin_right = 257.0
margin_bottom = 206.0
margin_top = 99.0
margin_right = 57.0
margin_bottom = 145.0
size_flags_vertical = 3
text = "Effects"
align = 1
[node name="VBoxContainer2" type="VBoxContainer" parent="Panel/KeymapViewer/HSplitContainer"]
margin_left = 269.0
margin_right = 542.0
margin_bottom = 206.0
[node name="VBoxContainer" type="VBoxContainer" parent="Panel/KeymapViewer/HSplitContainer/VBoxContainer2"]
margin_right = 273.0
margin_bottom = 66.0
[node name="Label3" type="Label" parent="Panel/KeymapViewer/HSplitContainer/VBoxContainer"]
margin_top = 149.0
margin_right = 57.0
margin_bottom = 195.0
size_flags_vertical = 3
[node name="HSlider2" type="HSlider" parent="Panel/KeymapViewer/HSplitContainer/VBoxContainer2/VBoxContainer"]
margin_right = 273.0
margin_bottom = 7.0
size_flags_vertical = 1
[node name="Label" type="Label" parent="Panel/KeymapViewer/HSplitContainer/VBoxContainer2/VBoxContainer"]
margin_top = 11.0
margin_right = 273.0
margin_bottom = 20.0
text = "80%"
text = "UI"
align = 1
[node name="VBoxContainer2" type="VBoxContainer" parent="Panel/KeymapViewer/HSplitContainer"]
margin_left = 107.0
margin_right = 400.0
margin_bottom = 195.0
size_flags_horizontal = 7
size_flags_vertical = 3
alignment = 1
[node name="VBoxContainer" type="VBoxContainer" parent="Panel/KeymapViewer/HSplitContainer/VBoxContainer2"]
margin_right = 293.0
margin_bottom = 45.0
size_flags_vertical = 3
[node name="MasterSlider" type="HSlider" parent="Panel/KeymapViewer/HSplitContainer/VBoxContainer2/VBoxContainer"]
unique_name_in_owner = true
margin_right = 293.0
margin_bottom = 7.0
size_flags_vertical = 1
script = ExtResource( 1 )
[node name="Label" type="Label" parent="Panel/KeymapViewer/HSplitContainer/VBoxContainer2/VBoxContainer/MasterSlider"]
margin_top = 11.0
margin_right = 271.0
margin_bottom = 20.0
rect_scale = Vector2( 1.08059, 1 )
size_flags_horizontal = 3
size_flags_vertical = 3
text = "80%"
align = 1
valign = 1
[node name="VBoxContainer2" type="VBoxContainer" parent="Panel/KeymapViewer/HSplitContainer/VBoxContainer2"]
margin_top = 70.0
margin_right = 273.0
margin_bottom = 90.0
margin_top = 49.0
margin_right = 293.0
margin_bottom = 56.0
size_flags_vertical = 2
[node name="HSlider" type="HSlider" parent="Panel/KeymapViewer/HSplitContainer/VBoxContainer2/VBoxContainer2"]
margin_right = 273.0
margin_right = 293.0
margin_bottom = 7.0
size_flags_vertical = 2
script = ExtResource( 1 )
audio_bus = "Music"
[node name="Label" type="Label" parent="Panel/KeymapViewer/HSplitContainer/VBoxContainer2/VBoxContainer2"]
[node name="Label" type="Label" parent="Panel/KeymapViewer/HSplitContainer/VBoxContainer2/VBoxContainer2/HSlider"]
margin_top = 11.0
margin_right = 273.0
margin_right = 293.0
margin_bottom = 20.0
size_flags_horizontal = 3
size_flags_vertical = 3
text = "80"
align = 1
[node name="VBoxContainer3" type="VBoxContainer" parent="Panel/KeymapViewer/HSplitContainer/VBoxContainer2"]
margin_top = 140.0
margin_right = 273.0
margin_bottom = 206.0
margin_top = 99.0
margin_right = 293.0
margin_bottom = 145.0
grow_horizontal = 2
grow_vertical = 2
size_flags_vertical = 3
[node name="HSlider3" type="HSlider" parent="Panel/KeymapViewer/HSplitContainer/VBoxContainer2/VBoxContainer3"]
margin_right = 273.0
margin_right = 293.0
margin_bottom = 7.0
size_flags_vertical = 1
script = ExtResource( 1 )
audio_bus = "Effects"
[node name="Label" type="Label" parent="Panel/KeymapViewer/HSplitContainer/VBoxContainer2/VBoxContainer3"]
[node name="Label" type="Label" parent="Panel/KeymapViewer/HSplitContainer/VBoxContainer2/VBoxContainer3/HSlider3"]
margin_top = 11.0
margin_right = 273.0
margin_right = 292.0
margin_bottom = 20.0
text = "80"
align = 1
[node name="VBoxContainer4" type="VBoxContainer" parent="Panel/KeymapViewer/HSplitContainer/VBoxContainer2"]
margin_top = 149.0
margin_right = 293.0
margin_bottom = 195.0
grow_horizontal = 2
grow_vertical = 2
size_flags_vertical = 3
[node name="HSlider3" type="HSlider" parent="Panel/KeymapViewer/HSplitContainer/VBoxContainer2/VBoxContainer4"]
margin_right = 293.0
margin_bottom = 7.0
size_flags_vertical = 1
script = ExtResource( 1 )
audio_bus = "UI"
[node name="Label" type="Label" parent="Panel/KeymapViewer/HSplitContainer/VBoxContainer2/VBoxContainer4/HSlider3"]
margin_top = 11.0
margin_right = 293.0
margin_bottom = 20.0
text = "80"
align = 1

View File

@ -0,0 +1,17 @@
extends HSlider
export(String) var audio_bus := "Master"
onready var _bus := AudioServer.get_bus_index(audio_bus)
func _ready() -> void:
min_value = 0.0
max_value = 1.0
step = 0.01
self.connect("value_changed", self, "_on_Slider_value_changed")
value = db2linear(AudioServer.get_bus_volume_db(_bus))
$Label.text = str(value*100)
func _on_Slider_value_changed(value: float) -> void:
AudioServer.set_bus_volume_db(_bus, linear2db(value))
$Label.text = str(value*100)

View File

@ -5,63 +5,63 @@ signal profile_changed(new_profile)
var current_profile_id = 0
var profiles = {
0: 'keyboard',
1: 'controller'
0: 'keyboard',
1: 'controller'
}
var keyboard = {}
var controller = {}
func change_profile(id):
current_profile_id = id
var profile = get(profiles[id])
for action_name in profile.keys():
change_action_key(action_name, profile[action_name])
emit_signal('profile_changed', profile)
return profile
current_profile_id = id
var profile = get(profiles[id])
for action_name in profile.keys():
change_action_key(action_name, profile[action_name])
emit_signal('profile_changed', profile)
return profile
func commit_to_changes():
for profile_name in profiles.values():
var profile = get(profile_name)
for action_name in profile.keys():
if(action_name.ends_with("_old")):
continue
erase_old_action_event(action_name)
profile[action_name + "_old"] = profile[action_name]
InputMap.action_add_event(action_name, profile[action_name])
for profile_name in profiles.values():
var profile = get(profile_name)
for action_name in profile.keys():
if(action_name.ends_with("_old")):
continue
erase_old_action_event(action_name)
profile[action_name + "_old"] = profile[action_name]
InputMap.action_add_event(action_name, profile[action_name])
func change_action_key(action_name, event, old_event = null) -> bool:
if(old_event != null):
if(event.as_text().match("*Joy*") != old_event.as_text().match("*Joy*")):
return false
get_selected_profile()[action_name+"_old"] = old_event
get_selected_profile()[action_name] = event
return true
if(old_event != null):
if(event.as_text().match("*Joy*") != old_event.as_text().match("*Joy*")):
return false
get_selected_profile()[action_name+"_old"] = old_event
get_selected_profile()[action_name] = event
return true
func erase_old_action_event(action_name):
if(get_selected_profile().has(action_name+"_old")):
var old_event = get_selected_profile()[action_name+"_old"]
var event = get_selected_profile()[action_name]
if(old_event != event):
InputMap.action_erase_event(action_name, old_event)
if(get_selected_profile().has(action_name+"_old")):
var old_event = get_selected_profile()[action_name+"_old"]
var event = get_selected_profile()[action_name]
if(old_event != event):
InputMap.action_erase_event(action_name, old_event)
func initialize_profiles() -> void:
var actions: Array = InputMap.get_actions()
actions.sort()
for action in actions:
var input_events = InputMap.get_action_list(action)
for event in input_events:
if event.as_text().match("*JoypadButton*"):
controller[action] = event
controller[action+"_old"] = event
elif !event.as_text().match("*Joy*"):
keyboard[action] = event
keyboard[action+"_old"] = event
change_profile(current_profile_id)
var actions: Array = InputMap.get_actions()
actions.sort()
for action in actions:
var input_events = InputMap.get_action_list(action)
for event in input_events:
if event.as_text().match("*JoypadButton*"):
controller[action] = event
controller[action+"_old"] = event
elif !event.as_text().match("*Joy*"):
keyboard[action] = event
keyboard[action+"_old"] = event
change_profile(current_profile_id)
func get_selected_profile():
return get(profiles[current_profile_id])
return get(profiles[current_profile_id])
func _on_ProfilesMenu_item_selected(ID):
change_profile(ID)
change_profile(ID)

View File

@ -0,0 +1,5 @@
extends Control
func _ready() -> void:
$"%PlayButton".grab_focus()

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=14 format=2]
[gd_scene load_steps=20 format=2]
[ext_resource path="res://src/UserInterface/Buttons/QuitButton.tscn" type="PackedScene" id=1]
[ext_resource path="res://src/UserInterface/Titel.tscn" type="PackedScene" id=2]
@ -7,11 +7,39 @@
[ext_resource path="res://assets/meta/ui_theme.tres" type="Theme" id=5]
[ext_resource path="res://assets/environment/background/Spaceship-Wall.png" type="Texture" id=6]
[ext_resource path="res://assets/environment/background/starry-space.png" type="Texture" id=7]
[ext_resource path="res://assets/sounds/Simple Switch On.ogg" type="AudioStream" id=8]
[ext_resource path="res://src/UserInterface/Screens/MainMenu/LevelSelectButtonGroup.tres" type="ButtonGroup" id=9]
[ext_resource path="res://assets/meta/montserrat_extrabold.otf" type="DynamicFontData" id=10]
[ext_resource path="res://src/UserInterface/Screens/MainMenu/LevelList.gd" type="Script" id=11]
[ext_resource path="res://src/UserInterface/Buttons/MenuNavigationButton.gd" type="Script" id=12]
[ext_resource path="res://assets/ui/sci-fi-godot-theme/sci-fi-theme.tres" type="Theme" id=13]
[ext_resource path="res://src/UserInterface/Screens/MainMenu/MainScreen.gd" type="Script" id=14]
[sub_resource type="Gradient" id=4]
interpolation_mode = 2
offsets = PoolRealArray( 0, 0.797721 )
colors = PoolColorArray( 0, 0, 0, 0, 0, 0, 0, 0.513726 )
[sub_resource type="GradientTexture2D" id=5]
gradient = SubResource( 4 )
width = 640
height = 360
fill = 1
fill_from = Vector2( 0.497242, 0.46915 )
fill_to = Vector2( 1, 1 )
[sub_resource type="Gradient" id=2]
interpolation_mode = 2
offsets = PoolRealArray( 0, 0.797721 )
colors = PoolColorArray( 0, 0, 0, 0, 0, 0, 0, 0.513726 )
[sub_resource type="GradientTexture2D" id=3]
gradient = SubResource( 2 )
width = 1280
height = 360
fill = 1
fill_from = Vector2( 0.514029, 0.849867 )
fill_to = Vector2( 1, 0.994443 )
[sub_resource type="DynamicFont" id=1]
size = 60
@ -24,6 +52,7 @@ mouse_filter = 2
size_flags_horizontal = 0
size_flags_vertical = 0
theme = ExtResource( 5 )
script = ExtResource( 14 )
[node name="SignalManager" parent="." instance=ExtResource( 4 )]
@ -43,6 +72,38 @@ texture = ExtResource( 6 )
expand = true
stretch_mode = 1
[node name="TextureRect" type="TextureRect" parent="."]
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
margin_left = -583.0
margin_top = -35.0
margin_right = 567.0
margin_bottom = 291.0
size_flags_horizontal = 3
size_flags_vertical = 3
texture = SubResource( 5 )
expand = true
stretch_mode = 1
[node name="TextureRect2" type="TextureRect" parent="."]
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
margin_left = -583.0
margin_top = -412.0
margin_right = 567.0
margin_bottom = -86.0
grow_horizontal = 2
grow_vertical = 2
size_flags_horizontal = 3
size_flags_vertical = 3
texture = SubResource( 3 )
expand = true
stretch_mode = 1
[node name="MarginContainer" type="MarginContainer" parent="."]
anchor_left = 0.5
anchor_top = 0.02
@ -93,7 +154,7 @@ size_flags_horizontal = 3
[node name="PlayButton" parent="MenuContainer/Buttons" instance=ExtResource( 3 )]
unique_name_in_owner = true
margin_right = 154.0
margin_bottom = 42.0
margin_bottom = 30.0
focus_neighbour_top = NodePath("../QuitButton")
focus_neighbour_bottom = NodePath("../Controlls")
theme = ExtResource( 13 )
@ -101,25 +162,37 @@ next_scene_path = "res://src/Levels/1 Tutorial Level.tscn"
[node name="Controlls" parent="MenuContainer/Buttons" instance=ExtResource( 3 )]
unique_name_in_owner = true
margin_top = 46.0
margin_top = 34.0
margin_right = 154.0
margin_bottom = 88.0
margin_bottom = 65.0
focus_neighbour_top = NodePath("../PlayButton")
focus_neighbour_bottom = NodePath("../QuitButton")
focus_neighbour_bottom = NodePath("../Audio")
theme = ExtResource( 13 )
text = "Controls"
script = ExtResource( 12 )
next_screen_path = "res://src/UserInterface/Screens/MainMenu/ControlsMenu/ControlsMenu.tscn"
[node name="Audio" parent="MenuContainer/Buttons" instance=ExtResource( 3 )]
unique_name_in_owner = true
margin_top = 69.0
margin_right = 154.0
margin_bottom = 100.0
focus_neighbour_top = NodePath("../Controlls")
focus_neighbour_bottom = NodePath("../QuitButton")
theme = ExtResource( 13 )
text = "Audio"
script = ExtResource( 12 )
next_screen_path = "res://src/UserInterface/Screens/MainMenu/AudioMenu.tscn"
[node name="QuitButton" parent="MenuContainer/Buttons" instance=ExtResource( 1 )]
unique_name_in_owner = true
anchor_left = 0.0
anchor_right = 0.0
margin_left = 0.0
margin_top = 92.0
margin_top = 104.0
margin_right = 154.0
margin_bottom = 135.0
focus_neighbour_top = NodePath("../Controlls")
focus_neighbour_top = NodePath("../Audio")
focus_neighbour_bottom = NodePath("../PlayButton")
[node name="Panel" type="Panel" parent="MenuContainer"]
@ -171,4 +244,7 @@ size_flags_horizontal = 3
size_flags_vertical = 3
group = ExtResource( 9 )
[connection signal="focus_entered" from="MenuContainer/Buttons/PlayButton" to="MenuContainer/Buttons/PlayButton" method="_on_PlayButton_focus_entered"]
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
stream = ExtResource( 8 )
volume_db = 9.546
bus = "UI"