diff --git a/Assets/Model/Objects/Trashcan.glb b/Assets/Model/Objects/Trashcan.glb new file mode 100644 index 0000000..f4608ee Binary files /dev/null and b/Assets/Model/Objects/Trashcan.glb differ diff --git a/Assets/Model/Objects/Trashcan.glb.import b/Assets/Model/Objects/Trashcan.glb.import new file mode 100644 index 0000000..b01a976 --- /dev/null +++ b/Assets/Model/Objects/Trashcan.glb.import @@ -0,0 +1,37 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://dtur8jn3vpeuv" +path="res://.godot/imported/Trashcan.glb-e56c10fe18c841e89ba098a6906f8072.scn" + +[deps] + +source_file="res://Assets/Model/Objects/Trashcan.glb" +dest_files=["res://.godot/imported/Trashcan.glb-e56c10fe18c841e89ba098a6906f8072.scn"] + +[params] + +nodes/root_type="Node3D" +nodes/root_name="Scene Root" +nodes/apply_root_scale=true +nodes/root_scale=1.0 +meshes/ensure_tangents=true +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 +skins/use_named_skins=true +animation/import=true +animation/fps=30 +animation/trimming=false +import_script/path="" +_subresources={ +"materials": { +"Metall": { +"use_external/enabled": true, +"use_external/path": "res://Assets/Textures/CopperNew/CleanCopper.tres" +} +} +} diff --git a/Assets/Textures/Font/Opera_senza_titolo-3.png b/Assets/Textures/Font/Opera_senza_titolo-3.png new file mode 100644 index 0000000..7cbe248 Binary files /dev/null and b/Assets/Textures/Font/Opera_senza_titolo-3.png differ diff --git a/Assets/Textures/Font/Opera_senza_titolo-3.png.import b/Assets/Textures/Font/Opera_senza_titolo-3.png.import new file mode 100644 index 0000000..62f2671 --- /dev/null +++ b/Assets/Textures/Font/Opera_senza_titolo-3.png.import @@ -0,0 +1,36 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bvs2d1ed47gpg" +path.s3tc="res://.godot/imported/Opera_senza_titolo-3.png-830dd687a73746be85ee47be727a141c.s3tc.ctex" +path.etc2="res://.godot/imported/Opera_senza_titolo-3.png-830dd687a73746be85ee47be727a141c.etc2.ctex" +metadata={ +"imported_formats": ["s3tc", "etc2"], +"vram_texture": true +} + +[deps] + +source_file="res://Assets/Textures/Font/Opera_senza_titolo-3.png" +dest_files=["res://.godot/imported/Opera_senza_titolo-3.png-830dd687a73746be85ee47be727a141c.s3tc.ctex", "res://.godot/imported/Opera_senza_titolo-3.png-830dd687a73746be85ee47be727a141c.etc2.ctex"] + +[params] + +compress/mode=2 +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/bptc_ldr=0 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +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=0 diff --git a/Assets/Textures/Font/Opera_senza_titolo.png b/Assets/Textures/Font/Opera_senza_titolo.png new file mode 100644 index 0000000..bc0193b Binary files /dev/null and b/Assets/Textures/Font/Opera_senza_titolo.png differ diff --git a/Assets/Textures/Font/Opera_senza_titolo.png.import b/Assets/Textures/Font/Opera_senza_titolo.png.import new file mode 100644 index 0000000..b824ed4 --- /dev/null +++ b/Assets/Textures/Font/Opera_senza_titolo.png.import @@ -0,0 +1,36 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bb32ohgxsjd4h" +path.s3tc="res://.godot/imported/Opera_senza_titolo.png-e38769f74f6ec3b3af52ad447b5f0b95.s3tc.ctex" +path.etc2="res://.godot/imported/Opera_senza_titolo.png-e38769f74f6ec3b3af52ad447b5f0b95.etc2.ctex" +metadata={ +"imported_formats": ["s3tc", "etc2"], +"vram_texture": true +} + +[deps] + +source_file="res://Assets/Textures/Font/Opera_senza_titolo.png" +dest_files=["res://.godot/imported/Opera_senza_titolo.png-e38769f74f6ec3b3af52ad447b5f0b95.s3tc.ctex", "res://.godot/imported/Opera_senza_titolo.png-e38769f74f6ec3b3af52ad447b5f0b95.etc2.ctex"] + +[params] + +compress/mode=2 +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/bptc_ldr=0 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +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=0 diff --git a/Assets/Textures/Font/credits.png b/Assets/Textures/Font/credits.png new file mode 100644 index 0000000..9f0ac16 Binary files /dev/null and b/Assets/Textures/Font/credits.png differ diff --git a/Assets/Textures/Font/credits.png.import b/Assets/Textures/Font/credits.png.import new file mode 100644 index 0000000..c98b8b8 --- /dev/null +++ b/Assets/Textures/Font/credits.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dy85j2wm08enl" +path="res://.godot/imported/credits.png-d454fd065c3f2bece11e8c3c42b74600.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/Font/credits.png" +dest_files=["res://.godot/imported/credits.png-d454fd065c3f2bece11e8c3c42b74600.ctex"] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/bptc_ldr=0 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +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/Assets/Textures/Font/settings.png b/Assets/Textures/Font/settings.png new file mode 100644 index 0000000..c2402dc Binary files /dev/null and b/Assets/Textures/Font/settings.png differ diff --git a/Assets/Textures/Font/settings.png.import b/Assets/Textures/Font/settings.png.import new file mode 100644 index 0000000..bdded77 --- /dev/null +++ b/Assets/Textures/Font/settings.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://60i5abp5yobu" +path="res://.godot/imported/settings.png-ffdfa0e9eb45d6db4034b3743f39e1f0.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Textures/Font/settings.png" +dest_files=["res://.godot/imported/settings.png-ffdfa0e9eb45d6db4034b3743f39e1f0.ctex"] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/bptc_ldr=0 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +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/Assets/Textures/Sand/M_Sand.tres b/Assets/Textures/Sand/M_Sand.tres new file mode 100644 index 0000000..650d1c8 --- /dev/null +++ b/Assets/Textures/Sand/M_Sand.tres @@ -0,0 +1,9 @@ +[gd_resource type="StandardMaterial3D" load_steps=3 format=3 uid="uid://b27870gqxnuai"] + +[ext_resource type="Texture2D" uid="uid://c2ptxav0ud0kg" path="res://Assets/Textures/Sand/Sand_Diffuse.png" id="1_vwott"] +[ext_resource type="Texture2D" uid="uid://fmqytawg0uli" path="res://Assets/Textures/Sand/Sand_Normal.png" id="2_clsr1"] + +[resource] +albedo_texture = ExtResource("1_vwott") +normal_enabled = true +normal_texture = ExtResource("2_clsr1") diff --git a/Assets/Textures/Sand/Sand_Diffuse.png b/Assets/Textures/Sand/Sand_Diffuse.png new file mode 100644 index 0000000..3d39528 Binary files /dev/null and b/Assets/Textures/Sand/Sand_Diffuse.png differ diff --git a/Assets/Textures/Sand/Sand_Diffuse.png.import b/Assets/Textures/Sand/Sand_Diffuse.png.import new file mode 100644 index 0000000..0e48977 --- /dev/null +++ b/Assets/Textures/Sand/Sand_Diffuse.png.import @@ -0,0 +1,36 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c2ptxav0ud0kg" +path.s3tc="res://.godot/imported/Sand_Diffuse.png-fdd04e698dd70afdba9d8f6a5393d016.s3tc.ctex" +path.etc2="res://.godot/imported/Sand_Diffuse.png-fdd04e698dd70afdba9d8f6a5393d016.etc2.ctex" +metadata={ +"imported_formats": ["s3tc", "etc2"], +"vram_texture": true +} + +[deps] + +source_file="res://Assets/Textures/Sand/Sand_Diffuse.png" +dest_files=["res://.godot/imported/Sand_Diffuse.png-fdd04e698dd70afdba9d8f6a5393d016.s3tc.ctex", "res://.godot/imported/Sand_Diffuse.png-fdd04e698dd70afdba9d8f6a5393d016.etc2.ctex"] + +[params] + +compress/mode=2 +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/bptc_ldr=0 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +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=0 diff --git a/Assets/Textures/Sand/Sand_Normal.png b/Assets/Textures/Sand/Sand_Normal.png new file mode 100644 index 0000000..e8c719a Binary files /dev/null and b/Assets/Textures/Sand/Sand_Normal.png differ diff --git a/Assets/Textures/Sand/Sand_Normal.png.import b/Assets/Textures/Sand/Sand_Normal.png.import new file mode 100644 index 0000000..c167e1a --- /dev/null +++ b/Assets/Textures/Sand/Sand_Normal.png.import @@ -0,0 +1,36 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://fmqytawg0uli" +path.s3tc="res://.godot/imported/Sand_Normal.png-e45c8125450c4cdc9833015bb7753711.s3tc.ctex" +path.etc2="res://.godot/imported/Sand_Normal.png-e45c8125450c4cdc9833015bb7753711.etc2.ctex" +metadata={ +"imported_formats": ["s3tc", "etc2"], +"vram_texture": true +} + +[deps] + +source_file="res://Assets/Textures/Sand/Sand_Normal.png" +dest_files=["res://.godot/imported/Sand_Normal.png-e45c8125450c4cdc9833015bb7753711.s3tc.ctex", "res://.godot/imported/Sand_Normal.png-e45c8125450c4cdc9833015bb7753711.etc2.ctex"] + +[params] + +compress/mode=2 +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/bptc_ldr=0 +compress/normal_map=1 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=1 +roughness/src_normal="res://Assets/Textures/Sand/Sand_Normal.png" +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=0 diff --git a/Nodes/MainMenu3D.tscn b/Nodes/MainMenu3D.tscn index 91898ef..6c42626 100644 --- a/Nodes/MainMenu3D.tscn +++ b/Nodes/MainMenu3D.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=18 format=3 uid="uid://c4njs3xp5s582"] +[gd_scene load_steps=20 format=3 uid="uid://c4njs3xp5s582"] [ext_resource type="PackedScene" uid="uid://bn42ap8pnv34r" path="res://Assets/Model/MainMenuObjects/tischplatte.glb" id="1_x1eq8"] [ext_resource type="PackedScene" uid="uid://fpl3qyhc3e6m" path="res://Assets/Model/MainMenuObjects/blueprint untergrund.glb" id="2_l7bb1"] @@ -9,6 +9,7 @@ [ext_resource type="PackedScene" uid="uid://cfs0mfmyps1si" path="res://Assets/Model/MainMenuObjects/papierrolle_flach.glb" id="7_32tfv"] [ext_resource type="Script" path="res://scripts/3DUI/dreieck.gd" id="7_jf0cx"] [ext_resource type="PackedScene" uid="uid://b6ftkalbyl77o" path="res://Assets/Model/MainMenuObjects/papierrolle_knick.glb" id="8_dcfhc"] +[ext_resource type="Texture2D" uid="uid://bvs2d1ed47gpg" path="res://Assets/Textures/Font/Opera_senza_titolo-3.png" id="8_scw7v"] [ext_resource type="PackedScene" uid="uid://dl5er7ybhbjx4" path="res://Assets/Model/MainMenuObjects/zahnrad_gross.glb" id="9_040k3"] [ext_resource type="Script" path="res://scripts/3DUI/papierrolle_flach.gd" id="9_p50rx"] [ext_resource type="PackedScene" uid="uid://dsj0fslwga5xl" path="res://Assets/Model/MainMenuObjects/zahnrad_klein.glb" id="10_4uhdl"] @@ -17,6 +18,7 @@ [ext_resource type="PackedScene" uid="uid://nxapkgcq2c70" path="res://Nodes/light_setup.tscn" id="13_smxpv"] [ext_resource type="PackedScene" uid="uid://dhe41jox6id7r" path="res://Assets/Model/MainMenuObjects/bild_deko.glb" id="14_gbsgf"] [ext_resource type="Script" path="res://scripts/3DUI/zahnraeder.gd" id="14_o12ah"] +[ext_resource type="Texture2D" uid="uid://bb32ohgxsjd4h" path="res://Assets/Textures/Font/Opera_senza_titolo.png" id="18_fvvjm"] [node name="MainMenu3D" type="Node3D"] @@ -48,6 +50,10 @@ script = ExtResource("7_jf0cx") transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0) polygon = PackedVector2Array(0.351274, -1.7499, -1.21959, 0.121159, 0.67798, 1.71333) +[node name="play" type="Sprite3D" parent="dreieck"] +transform = Transform3D(-0.5, 7.54979e-08, 3.30012e-15, 0, -2.18557e-08, 0.5, 7.54979e-08, 0.5, 2.18557e-08, -3.45421, 0, 0) +texture = ExtResource("8_scw7v") + [node name="papierrolle_flach" parent="." instance=ExtResource("7_32tfv")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.597003, 0.758382, -5.10524) script = ExtResource("9_p50rx") @@ -91,6 +97,10 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.438931, 0, -2.77826) [node name="zahnrad_mittel" parent="zahnraeder" instance=ExtResource("11_lokvi")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.90855, 0.23831, -0.686673) +[node name="Sprite3D" type="Sprite3D" parent="."] +transform = Transform3D(-0.7, 1.05697e-07, 4.62017e-15, 0, -3.0598e-08, 0.7, 1.05697e-07, 0.7, 3.0598e-08, 2.19996, 1, 4.10689) +texture = ExtResource("18_fvvjm") + [connection signal="input_event" from="dreieck/Area3D" to="dreieck" method="_on_area_3d_input_event"] [connection signal="mouse_exited" from="dreieck/Area3D" to="dreieck" method="_on_area_3d_mouse_exited"] [connection signal="input_event" from="papierrolle_flach/Area3D" to="papierrolle_flach" method="_on_area_3d_input_event"] diff --git a/menu/MainMenu.gd b/menu/MainMenu.gd index 9867bb0..6a693fa 100644 --- a/menu/MainMenu.gd +++ b/menu/MainMenu.gd @@ -1,10 +1,12 @@ extends Control +var master_bus # Called when the node enters the scene tree for the first time. # Called when the node enters the scene tree for the first time. func _ready(): $VBoxContainer/Start.grab_focus() # Replace with function body. + master_bus = AudioServer.get_bus_index("Master") # Called every frame. 'delta' is the elapsed time since the previous frame. @@ -33,3 +35,12 @@ func _on_full_screen_pressed(): if DisplayServer.window_get_mode() != DisplayServer.WINDOW_MODE_WINDOWED: DisplayServer.window_set_mode(DisplayServer.WINDOW_MODE_WINDOWED) + + +func _on_vol_slider_value_changed(value): + AudioServer.set_bus_volume_db(master_bus, value) + + if value == -30: + AudioServer.set_bus_mute(master_bus,true) + else: + AudioServer.set_bus_mute(master_bus, false) diff --git a/menu/VolSlider.gd b/menu/VolSlider.gd new file mode 100644 index 0000000..e69de29 diff --git a/menu/main_menu.tscn b/menu/main_menu.tscn index 085ceaf..700d7e4 100644 --- a/menu/main_menu.tscn +++ b/menu/main_menu.tscn @@ -1,7 +1,6 @@ -[gd_scene load_steps=4 format=3 uid="uid://bsmsdlf5jiukx"] +[gd_scene load_steps=3 format=3 uid="uid://bsmsdlf5jiukx"] [ext_resource type="Script" path="res://menu/MainMenu.gd" id="1_hyw8p"] -[ext_resource type="Script" path="res://menu/VolSlider.gd" id="2_h85ei"] [ext_resource type="AudioStream" uid="uid://bmawra1dgi812" path="res://Assets/Sounds/_MUSIC_/MenuGameJamLoop.wav" id="3_ktf88"] [node name="MainMenu" type="Control"] @@ -14,6 +13,7 @@ grow_vertical = 2 script = ExtResource("1_hyw8p") [node name="ColorRect" type="ColorRect" parent="."] +layout_mode = 1 anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 @@ -22,6 +22,7 @@ grow_vertical = 2 color = Color(0.513726, 0.403922, 0.27451, 1) [node name="VBoxContainer" type="VBoxContainer" parent="."] +layout_mode = 1 anchors_preset = 8 anchor_left = 0.5 anchor_top = 0.5 @@ -35,42 +36,30 @@ grow_horizontal = 2 grow_vertical = 2 [node name="Start" type="Button" parent="VBoxContainer"] -offset_right = 87.0 -offset_bottom = 31.0 +layout_mode = 2 text = "Start " [node name="Tutorial" type="Button" parent="VBoxContainer"] -offset_top = 35.0 -offset_right = 87.0 -offset_bottom = 66.0 +layout_mode = 2 text = "Tutorial " [node name="Settings" type="Button" parent="VBoxContainer"] -offset_top = 70.0 -offset_right = 87.0 -offset_bottom = 101.0 +layout_mode = 2 text = "Volume:" [node name="VolSlider" type="HSlider" parent="VBoxContainer"] -offset_top = 105.0 -offset_right = 87.0 -offset_bottom = 121.0 +layout_mode = 2 min_value = -30.0 max_value = 0.0 -script = ExtResource("2_h85ei") [node name="Quit" type="Button" parent="VBoxContainer"] -offset_top = 125.0 -offset_right = 87.0 -offset_bottom = 156.0 +layout_mode = 2 text = "Quit" [node name="FullScreen" type="Button" parent="VBoxContainer"] -offset_top = 160.0 -offset_right = 87.0 -offset_bottom = 191.0 +layout_mode = 2 text = "Fullscreen" [node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."] @@ -80,6 +69,6 @@ autoplay = true [connection signal="pressed" from="VBoxContainer/Start" to="." method="_on_start_pressed"] [connection signal="pressed" from="VBoxContainer/Tutorial" to="." method="_on_tutorial_pressed"] [connection signal="pressed" from="VBoxContainer/Settings" to="." method="_on_settings_pressed"] -[connection signal="value_changed" from="VBoxContainer/VolSlider" to="VBoxContainer/VolSlider" method="_on_value_changed"] +[connection signal="value_changed" from="VBoxContainer/VolSlider" to="." method="_on_vol_slider_value_changed"] [connection signal="pressed" from="VBoxContainer/Quit" to="." method="_on_quit_pressed"] [connection signal="pressed" from="VBoxContainer/FullScreen" to="." method="_on_full_screen_pressed"] diff --git a/scripts/3DUI/SubViewport.gd b/scripts/3DUI/SubViewport.gd new file mode 100644 index 0000000..977efb5 --- /dev/null +++ b/scripts/3DUI/SubViewport.gd @@ -0,0 +1,12 @@ +extends SubViewport + + +# Called when the node enters the scene tree for the first time. +func _ready(): + pass # Replace with function body. + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(delta): + size = $Label3D.rect_size + pass diff --git a/scripts/3DUI/dreieck.gd b/scripts/3DUI/dreieck.gd index b04c7bd..89b3d69 100644 --- a/scripts/3DUI/dreieck.gd +++ b/scripts/3DUI/dreieck.gd @@ -1,7 +1,11 @@ extends Node3D +func _ready(): + self.get_node("play").hide() + func _on_area_3d_input_event(camera, event, position, normal, shape_idx): self.scale = Vector3(1.5,1.5,1.5) + self.get_node("play").show() if event is InputEventMouseButton: if event.button_index == MOUSE_BUTTON_LEFT and event.pressed == true: print("Start Game") @@ -10,4 +14,5 @@ func _on_area_3d_input_event(camera, event, position, normal, shape_idx): func _on_area_3d_mouse_exited(): + self.get_node("play").hide() self.scale = Vector3(1,1,1)