diff --git a/scenes/kreb.gd b/scenes/kreb.gd new file mode 100644 index 0000000..f8f6092 --- /dev/null +++ b/scenes/kreb.gd @@ -0,0 +1,20 @@ +extends Node3D + + +# Called when the node enters the scene tree for the first time. +func _ready() -> void: + pass # Replace with function body. + + +# Called every frame. 'delta' is the elapsed time since the previous frame. +func _process(delta: float) -> void: + var closest: Node3D + var least_dist = INF + for p: Node3D in get_tree().get_nodes_in_group('players'): + var dist = global_position.distance_to(p.global_position) + if dist < least_dist: + least_dist = dist + closest = p + + if closest: + look_at(closest.global_position * Vector3(1, 0, 1) + Vector3(0, 1, 0), Vector3.UP, true) diff --git a/scenes/level_pool.tscn b/scenes/level_pool.tscn index bc6d8a3..1db9599 100644 --- a/scenes/level_pool.tscn +++ b/scenes/level_pool.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=25 format=4 uid="uid://bbqug1s083mdi"] +[gd_scene load_steps=29 format=4 uid="uid://bbqug1s083mdi"] [ext_resource type="PackedScene" uid="uid://ci2uamlnv8swy" path="res://assets/maps/levelpool.blend" id="1_cpckw"] [ext_resource type="PackedScene" uid="uid://cy86jyiy6skvk" path="res://scenes/player.tscn" id="2_eggmh"] @@ -10,6 +10,7 @@ [ext_resource type="AudioStream" uid="uid://d20ver6nfndbt" path="res://assets/sounds/dialog/start_dialog.wav" id="7_r1xli"] [ext_resource type="Script" path="res://scripts/failure.gd" id="8_pee3c"] [ext_resource type="AudioStream" uid="uid://dbw14jkekqjrb" path="res://assets/sounds/dialog/win_dialog.wav" id="8_u6ajb"] +[ext_resource type="Script" path="res://scenes/kreb.gd" id="9_wgbkn"] [ext_resource type="AudioStream" uid="uid://w7jbmkwjvtvx" path="res://assets/sounds/disappoint.wav" id="11_yx3n7"] [ext_resource type="PackedScene" uid="uid://duuedavsf44c7" path="res://assets/models/general/monitor01.blend" id="12_nw67b"] @@ -64,12 +65,12 @@ resource_name = "open" tracks/0/type = "bezier" tracks/0/imported = false tracks/0/enabled = true -tracks/0/path = NodePath("CollisionShape3D:position:y") +tracks/0/path = NodePath("CollisionShape3D:position:x") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/keys = { "handle_modes": PackedInt32Array(0, 0), -"points": PackedFloat32Array(0, -0.25, 0, 0.5, 0, 4, -0.5, 0, 0.25, 0), +"points": PackedFloat32Array(0, -0.25, 0, 0.5, 0, 3.9, -0.5, 0, 0.25, 0), "times": PackedFloat32Array(0, 1) } @@ -88,7 +89,17 @@ size = Vector3(2, 2, 2) size = Vector3(2, 0.147827, 2) [sub_resource type="BoxShape3D" id="BoxShape3D_vryv4"] -size = Vector3(2, 1, 2) +size = Vector3(4, 4, 1) + +[sub_resource type="QuadMesh" id="QuadMesh_vjrho"] +size = Vector2(1, 2) + +[sub_resource type="ViewportTexture" id="ViewportTexture_ma705"] +viewport_path = NodePath("Kreb/CSGMesh3D/Sprite3D/SubViewport") + +[sub_resource type="LabelSettings" id="LabelSettings_7t61y"] +font_size = 20 +font_color = Color(0.396889, 0.396889, 0.396889, 1) [node name="LevelPool" type="Node3D"] @@ -113,6 +124,12 @@ visible = false [node name="holerim" parent="levelpool" index="4"] mesh = SubResource("ArrayMesh_4vkxm") +[node name="Text" parent="levelpool" index="8"] +visible = false + +[node name="Plane" parent="levelpool" index="9"] +visible = false + [node name="Player" parent="." instance=ExtResource("2_eggmh")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.012538, 19) @@ -191,15 +208,15 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.926086, 0) shape = SubResource("BoxShape3D_0a1av") [node name="DialogTrigger" parent="." instance=ExtResource("6_f2del")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.05, 10.5) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2, 10.5) group = "players" [node name="CollisionShape3D" type="CollisionShape3D" parent="DialogTrigger"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0022583, -0.0446777, 0) shape = SubResource("BoxShape3D_vryv4") [node name="Kreb" type="Node3D" parent="."] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.70194, 1.2497, 6.87629) +transform = Transform3D(0.797584, 0, 0.603208, 0, 1, 0, -0.603208, 0, 0.797584, -2.70194, 1.2497, 6.87629) +script = ExtResource("9_wgbkn") [node name="StartDialog" type="AudioStreamPlayer3D" parent="Kreb"] stream = ExtResource("7_r1xli") @@ -211,6 +228,34 @@ stream = ExtResource("8_u6ajb") stream = ExtResource("11_yx3n7") max_db = 6.0 +[node name="CSGMesh3D" type="CSGMesh3D" parent="Kreb"] +transform = Transform3D(1, 0, 0, 0, 0.965926, 0.258819, 0, -0.258819, 0.965926, 0, 0, 0) +use_collision = true +mesh = SubResource("QuadMesh_vjrho") + +[node name="Sprite3D" type="Sprite3D" parent="Kreb/CSGMesh3D"] +transform = Transform3D(1, 1.52078e-08, -2.76867e-08, 7.45058e-09, 0.958839, -0.283948, 0, 0.283948, 0.95884, 0.0420668, 1.4184, 0.120258) +texture = SubResource("ViewportTexture_ma705") + +[node name="SubViewport" type="SubViewport" parent="Kreb/CSGMesh3D/Sprite3D"] +transparent_bg = true +handle_input_locally = false + +[node name="Label" type="Label" parent="Kreb/CSGMesh3D/Sprite3D/SubViewport"] +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -40.5 +offset_top = -11.5 +offset_right = 40.5 +offset_bottom = 11.5 +grow_horizontal = 2 +grow_vertical = 2 +text = "Krebathan" +label_settings = SubResource("LabelSettings_7t61y") + [node name="monitor01" parent="." instance=ExtResource("12_nw67b")] transform = Transform3D(-0.609108, 0, -0.793088, 0, 1, 0, 0.793088, 0, -0.609108, -4.52265, 0, -3.89963)