diff --git a/Florian/Entity/interactable.gd b/Florian/Entity/interactable.gd new file mode 100644 index 0000000..f5d61ad --- /dev/null +++ b/Florian/Entity/interactable.gd @@ -0,0 +1,12 @@ +class_name Interactable +extends Area3D + +signal interact + + +func _ready(): + interact.connect(_debug) + + +func _debug(): + print("ICH WURDE ITNERGAIRERT!") diff --git a/Florian/Entity/interactable.gd.uid b/Florian/Entity/interactable.gd.uid new file mode 100644 index 0000000..6fbdbb5 --- /dev/null +++ b/Florian/Entity/interactable.gd.uid @@ -0,0 +1 @@ +uid://cjxx7f0186bxr diff --git a/Florian/Entity/interactable.tscn b/Florian/Entity/interactable.tscn new file mode 100644 index 0000000..8aee215 --- /dev/null +++ b/Florian/Entity/interactable.tscn @@ -0,0 +1,21 @@ +[gd_scene load_steps=5 format=3 uid="uid://byhsp6ujjsh8m"] + +[ext_resource type="Script" uid="uid://cjxx7f0186bxr" path="res://Florian/Entity/interactable.gd" id="1_pm3my"] + +[sub_resource type="BoxShape3D" id="BoxShape3D_pm3my"] + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_pm3my"] +albedo_color = Color(1, 0.290196, 1, 1) + +[sub_resource type="BoxMesh" id="BoxMesh_pm3my"] +material = SubResource("StandardMaterial3D_pm3my") + +[node name="Interactable" type="Area3D"] +script = ExtResource("1_pm3my") + +[node name="InteractableHitBox" type="CollisionShape3D" parent="."] +shape = SubResource("BoxShape3D_pm3my") +debug_color = Color(0.976471, 0, 0.215686, 1) + +[node name="DebugInteractableVisual" type="MeshInstance3D" parent="InteractableHitBox"] +mesh = SubResource("BoxMesh_pm3my") diff --git a/Florian/Map/Oktoberfest.tscn b/Florian/Map/Oktoberfest.tscn index 71e50f8..1255d90 100644 --- a/Florian/Map/Oktoberfest.tscn +++ b/Florian/Map/Oktoberfest.tscn @@ -1,8 +1,15 @@ -[gd_scene load_steps=7 format=3 uid="uid://by5cq6m32hbor"] +[gd_scene load_steps=14 format=3 uid="uid://by5cq6m32hbor"] [ext_resource type="Texture2D" uid="uid://dv401srtwuvtg" path="res://icon.svg" id="1_6v0xc"] [ext_resource type="PackedScene" uid="uid://crrco762ow56c" path="res://Florian/Player/PlayerRigidbody.tscn" id="2_82wr0"] [ext_resource type="PackedScene" uid="uid://dvrnfjtmupucv" path="res://Florian/Props/table.tscn" id="3_tw6g5"] +[ext_resource type="PackedScene" uid="uid://bobfhgsydmmr2" path="res://Florian/pyro.tscn" id="4_h8052"] +[ext_resource type="PackedScene" uid="uid://byhsp6ujjsh8m" path="res://Florian/Entity/interactable.tscn" id="5_ygtpi"] +[ext_resource type="PackedScene" uid="uid://c8gnb0kut2n5h" path="res://Florian/PointsLogic/point_thing.tscn" id="6_miqpv"] +[ext_resource type="PackedScene" uid="uid://bk4djtjemu7we" path="res://Florian/Entity/People/guitar.tscn" id="6_ptxqs"] +[ext_resource type="PackedScene" uid="uid://c5552lenumx2j" path="res://Florian/Entity/People/saxophone.tscn" id="7_miqpv"] +[ext_resource type="PackedScene" uid="uid://bybsn53hd1mge" path="res://Florian/Entity/People/guys.tscn" id="9_3box6"] +[ext_resource type="PackedScene" uid="uid://k3ij7wrtwpms" path="res://Florian/table_0.tscn" id="10_ubr03"] [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_eral8"] albedo_texture = ExtResource("1_6v0xc") @@ -30,3 +37,106 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 2) [node name="Table2" parent="." instance=ExtResource("3_tw6g5")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4, 1, 1) + +[node name="Stage" type="Node3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -8) + +[node name="CSGCombiner3D" type="CSGCombiner3D" parent="Stage"] +use_collision = true + +[node name="CSGCylinder3D" type="CSGCylinder3D" parent="Stage/CSGCombiner3D"] +radius = 4.0 + +[node name="Pyro" parent="Stage" instance=ExtResource("4_h8052")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.6, 0.9, 2.6) + +[node name="Pyro2" parent="Stage" instance=ExtResource("4_h8052")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.4, 0.9, 2.6) + +[node name="Pyro3" parent="Stage" instance=ExtResource("4_h8052")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.6, 0.9, -2.4) + +[node name="Pyro4" parent="Stage" instance=ExtResource("4_h8052")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.4, 0.9, -2.4) + +[node name="Interactable" parent="Stage" instance=ExtResource("5_ygtpi")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.4, 0.9, 1) + +[node name="Truss" type="Node3D" parent="Stage"] + +[node name="CSGCombiner3D" type="CSGCombiner3D" parent="Stage/Truss"] + +[node name="CSGCylinder3D" type="CSGCylinder3D" parent="Stage/Truss/CSGCombiner3D"] +radius = 15.0 +height = 16.0 + +[node name="CSGCylinder3D" type="CSGCylinder3D" parent="Stage/Truss/CSGCombiner3D/CSGCylinder3D"] +operation = 2 +radius = 14.0 +height = 16.0 + +[node name="CSGCylinder3D2" type="CSGCylinder3D" parent="Stage/Truss/CSGCombiner3D/CSGCylinder3D"] +operation = 2 +radius = 15.0 +height = 14.0 + +[node name="Lights" type="Node3D" parent="Stage/Truss/CSGCombiner3D"] + +[node name="SpotLight3D" type="SpotLight3D" parent="Stage/Truss/CSGCombiner3D/Lights"] +transform = Transform3D(1, 0, 0, 0, 0.866025, 0.5, 0, -0.5, 0.866025, 0, 7, 14) +light_color = Color(1, 1, 0, 1) +spot_range = 30.0 +spot_attenuation = 0.4 + +[node name="SpotLight3D2" type="SpotLight3D" parent="Stage/Truss/CSGCombiner3D/Lights"] +transform = Transform3D(-4.37114e-08, 0.5, -0.866025, 0, 0.866025, 0.5, 1, 2.18557e-08, -3.78552e-08, -14, 7, -6.11959e-07) +light_color = Color(1, 1, 0, 1) +spot_range = 30.0 +spot_attenuation = 0.4 + +[node name="SpotLight3D3" type="SpotLight3D" parent="Stage/Truss/CSGCombiner3D/Lights"] +transform = Transform3D(-1, -4.37114e-08, 7.57103e-08, 0, 0.866025, 0.5, -8.74228e-08, 0.5, -0.866025, 9.53674e-07, 7, -14) +light_color = Color(1, 1, 0, 1) +spot_range = 30.0 +spot_attenuation = 0.4 + +[node name="SpotLight3D4" type="SpotLight3D" parent="Stage/Truss/CSGCombiner3D/Lights"] +transform = Transform3D(1.31134e-07, -0.5, 0.866025, 0, 0.866025, 0.5, -1, -6.55671e-08, 1.13566e-07, 14, 7, 1.83588e-06) +light_color = Color(1, 1, 0, 1) +spot_range = 30.0 +spot_attenuation = 0.4 + +[node name="PointThing" parent="Stage/Truss/CSGCombiner3D/Lights" instance=ExtResource("6_miqpv")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2, 0) +points_worth = 50 +points_name = "Stage Lights" +points_multiplier = 1.5 + +[node name="guitar" parent="Stage/Truss/CSGCombiner3D" instance=ExtResource("6_ptxqs")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 2, 0) + +[node name="saxophone" parent="Stage/Truss/CSGCombiner3D" instance=ExtResource("7_miqpv")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2, 2, 0) + +[node name="DancingPeople" type="Node3D" parent="Stage"] +transform = Transform3D(0.707107, 0, -0.707107, 0, 1, 0, 0.707107, 0, 0.707107, 0, 0, 0) + +[node name="guys" parent="Stage/DancingPeople" instance=ExtResource("9_3box6")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6, 0.9, 0) + +[node name="guys2" parent="Stage/DancingPeople" instance=ExtResource("9_3box6")] +transform = Transform3D(0.707107, 0, 0.707107, 0, 1, 0, -0.707107, 0, 0.707107, -4.24264, 0.9, 4.24264) + +[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 0.707107, 0.707107, 0, -0.707107, 0.707107, 0, 0, 0) +shadow_enabled = true + +[node name="Backstage" type="Node3D" parent="."] + +[node name="table0" parent="." instance=ExtResource("10_ubr03")] +transform = Transform3D(0.45, 0, 0, 0, 0.45, 0, 0, 0, 0.45, 0, 0, 3) + +[connection signal="interact" from="Stage/Interactable" to="Stage/Pyro" method="_turn_on_off"] +[connection signal="interact" from="Stage/Interactable" to="Stage/Pyro2" method="_turn_on_off"] +[connection signal="interact" from="Stage/Interactable" to="Stage/Pyro3" method="_turn_on_off"] +[connection signal="interact" from="Stage/Interactable" to="Stage/Pyro4" method="_turn_on_off"] diff --git a/Florian/Player/PlayerRigidbody.tscn b/Florian/Player/PlayerRigidbody.tscn index 00f09ec..7d1353d 100644 --- a/Florian/Player/PlayerRigidbody.tscn +++ b/Florian/Player/PlayerRigidbody.tscn @@ -28,15 +28,17 @@ shape = SubResource("CylinderShape3D_qqgab") [node name="RotationHelper" type="Node3D" parent="BoundingBox"] [node name="Interact" type="Node3D" parent="BoundingBox/RotationHelper"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0) [node name="InteractRay" type="RayCast3D" parent="BoundingBox/RotationHelper/Interact"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0) target_position = Vector3(0, 0, -4) collide_with_areas = true collide_with_bodies = false +debug_shape_custom_color = Color(1, 0, 0, 1) debug_shape_thickness = 1 [node name="CoolCamera" parent="BoundingBox/RotationHelper" node_paths=PackedStringArray("player") instance=ExtResource("2_leq5j")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0) player = NodePath("../../..") [node name="ThirdPerson" type="Node3D" parent="BoundingBox"] diff --git a/Florian/Player/playerRigidbody.gd b/Florian/Player/playerRigidbody.gd index 0b57477..ff36881 100644 --- a/Florian/Player/playerRigidbody.gd +++ b/Florian/Player/playerRigidbody.gd @@ -4,6 +4,7 @@ extends RigidBody3D @onready var camera = $BoundingBox/RotationHelper/CoolCamera @onready var rotation_helper = $BoundingBox/RotationHelper @onready var bounding_box = $BoundingBox +@onready var interact_ray: RayCast3D = $BoundingBox/RotationHelper/Interact/InteractRay signal take_picture @@ -31,9 +32,21 @@ func _ready(): Input.mouse_mode = Input.MOUSE_MODE_CAPTURED pass #Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED) - + +func _interact() -> void: + if interact_ray.is_colliding(): + var obj = interact_ray.get_collider() + print(obj) + if obj is Interactable: + #print("Jetzt ist es ezit") + obj.interact.emit() func _input(event): + if event.is_action_pressed("interact"): + _interact() + + + if event is InputEventKey: if event.keycode == KEY_ESCAPE && event.is_pressed(): if Input.mouse_mode == Input.MOUSE_MODE_CAPTURED: diff --git a/Florian/pyro.gd b/Florian/pyro.gd new file mode 100644 index 0000000..dce7cb1 --- /dev/null +++ b/Florian/pyro.gd @@ -0,0 +1,7 @@ +extends Node3D + +func _turn_on_off(): + if visible: + hide() + else: + show() diff --git a/Florian/pyro.gd.uid b/Florian/pyro.gd.uid new file mode 100644 index 0000000..de1578b --- /dev/null +++ b/Florian/pyro.gd.uid @@ -0,0 +1 @@ +uid://dravmby4n0dwd diff --git a/Florian/pyro.tscn b/Florian/pyro.tscn new file mode 100644 index 0000000..871d715 --- /dev/null +++ b/Florian/pyro.tscn @@ -0,0 +1,37 @@ +[gd_scene load_steps=6 format=3 uid="uid://bobfhgsydmmr2"] + +[ext_resource type="PackedScene" uid="uid://c8gnb0kut2n5h" path="res://Florian/PointsLogic/point_thing.tscn" id="1_o4o5a"] +[ext_resource type="Script" uid="uid://dravmby4n0dwd" path="res://Florian/pyro.gd" id="1_qbqit"] + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_ydarf"] +direction = Vector3(0, 10, 0) +spread = 20.0 +initial_velocity_min = 15.53 +initial_velocity_max = 15.53 + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_o4o5a"] +emission_enabled = true +emission = Color(0.97254, 0.877108, 0.233288, 1) +emission_energy_multiplier = 9.8 +disable_receive_shadows = true + +[sub_resource type="RibbonTrailMesh" id="RibbonTrailMesh_qbqit"] +material = SubResource("StandardMaterial3D_o4o5a") +size = 0.1 +sections = 2 + +[node name="Pyro" type="Node3D"] +script = ExtResource("1_qbqit") + +[node name="GPUParticles3D" type="GPUParticles3D" parent="."] +amount = 30 +process_material = SubResource("ParticleProcessMaterial_ydarf") +draw_pass_1 = SubResource("RibbonTrailMesh_qbqit") + +[node name="PointThing" parent="." instance=ExtResource("1_o4o5a")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3, 0) +points_name = "Pyro" +points_multiplier = 1.2 + +[node name="CSGBox3D" type="CSGBox3D" parent="."] +size = Vector3(0.4, 1, 0.4) diff --git a/Florian/table_0.tscn b/Florian/table_0.tscn new file mode 100644 index 0000000..fd02192 --- /dev/null +++ b/Florian/table_0.tscn @@ -0,0 +1,9 @@ +[gd_scene load_steps=2 format=3 uid="uid://k3ij7wrtwpms"] + +[ext_resource type="PackedScene" uid="uid://olc70hg5v5ou" path="res://Amanda/furni/table0.blend" id="1_xylfr"] + +[node name="table0" instance=ExtResource("1_xylfr")] +transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0, 0, 0) + +[node name="Point" parent="." index="0"] +visible = false diff --git a/project.godot b/project.godot index 271e28f..acd7ec2 100644 --- a/project.godot +++ b/project.godot @@ -11,7 +11,7 @@ config_version=5 [application] config/name="AllAroundTheWorld" -run/main_scene="uid://d1rip77vefx3i" +run/main_scene="uid://by5cq6m32hbor" config/features=PackedStringArray("4.4", "Forward Plus") config/icon="res://icon.svg" @@ -52,3 +52,8 @@ take_picture={ "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194309,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) ] } +interact={ +"deadzone": 0.2, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":69,"key_label":0,"unicode":101,"location":0,"echo":false,"script":null) +] +}