diff --git a/Maps/gym.tscn b/Maps/gym.tscn index b32747e..247abbe 100644 --- a/Maps/gym.tscn +++ b/Maps/gym.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=30 format=3 uid="uid://dnmetcwb14svi"] +[gd_scene load_steps=31 format=3 uid="uid://dnmetcwb14svi"] [ext_resource type="Material" uid="uid://chag8j6kyegq0" path="res://packs/Kaykit-Proto/materials/floor.tres" id="1_b53sv"] [ext_resource type="PackedScene" uid="uid://qbceryqqfoum" path="res://packs/Kaykit-Proto/obj/dummy.tscn" id="2_40027"] @@ -21,6 +21,7 @@ [ext_resource type="ArrayMesh" uid="uid://b368b7vyej1fk" path="res://packs/Kaykit-Proto/obj/table_medium_Decorated.obj" id="19_fypju"] [ext_resource type="ArrayMesh" uid="uid://wcyh5hwirci" path="res://packs/Kaykit-Proto/obj/Wall_Doorway.obj" id="20_j11kn"] [ext_resource type="ArrayMesh" uid="uid://di584vn1afti7" path="res://packs/Kaykit-Proto/obj/Primitive_Floor.obj" id="21_unwmg"] +[ext_resource type="AudioStream" uid="uid://c4fw6xlaqpred" path="res://audio/music/forested.ogg" id="22_qx0ut"] [sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_vkxe1"] sky_top_color = Color(0.299981, 0.701967, 0.743086, 1) @@ -43,15 +44,6 @@ glow_enabled = true volumetric_fog_enabled = true volumetric_fog_density = 0.0065 -[sub_resource type="BoxMesh" id="BoxMesh_afokq"] -resource_local_to_scene = true -resource_name = "floor_mesh" -lightmap_size_hint = Vector2i(103, 59) -uv2_padding = 0.0 -size = Vector3(10, 0.3, 10) -subdivide_width = 5 -subdivide_depth = 5 - [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_mqp7f"] albedo_texture = ExtResource("6_anror") @@ -66,6 +58,15 @@ albedo_texture = ExtResource("6_anror") [sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_afokq"] points = PackedVector3Array(-0.953959, 0.0770701, -0.923111, 0.995482, 1.90217, 0.902347, 0.953931, 1.92294, 0.923125, 0.902243, 1.90211, -0.99565, -0.902341, 1.99532, 0.902338, 0.902311, 0.00466377, 0.902352, -0.902272, 0.097907, 0.995635, 0.995482, 0.0978295, -0.902347, -0.99551, 1.90216, -0.902333, 0.902311, 1.99534, -0.902352, -0.99551, 0.0978435, 0.902333, 0.902243, 1.90211, 0.99565, -0.902272, 0.097907, -0.995635, -0.902341, 0.00467924, -0.902338, 0.902243, 0.097893, -0.99565, -0.902272, 1.90209, -0.995635, 0.902243, 0.097893, 0.99565, -0.902272, 1.90209, 0.995635, 0.902311, 0.00466377, -0.902352, -0.902341, 1.99532, -0.902338, -0.902341, 0.00467924, 0.902338, 0.995482, 0.0978295, 0.902347, 0.995482, 1.90217, -0.902347, -0.99551, 1.90216, 0.902333, 0.902311, 1.99534, 0.902352, -0.99551, 0.0978435, -0.902333) +[sub_resource type="BoxMesh" id="BoxMesh_afokq"] +resource_local_to_scene = true +resource_name = "floor_mesh" +lightmap_size_hint = Vector2i(103, 59) +uv2_padding = 0.0 +size = Vector3(10, 0.3, 10) +subdivide_width = 5 +subdivide_depth = 5 + [node name="Gym" type="Node"] [node name="WorldEnvironment" type="WorldEnvironment" parent="."] @@ -77,49 +78,6 @@ light_energy = 1.3 shadow_enabled = true directional_shadow_max_distance = 500.0 -[node name="CSGMesh3D" type="CSGMesh3D" parent="."] -transform = Transform3D(5.015, 0, 0, 0, 1, 0, 0, 0, 6.05, 0, -0.125, 0) -material_override = ExtResource("1_b53sv") -use_collision = true -mesh = SubResource("BoxMesh_afokq") - -[node name="dummy" parent="." instance=ExtResource("2_40027")] -transform = Transform3D(0.232937, 0, -0.869333, 0, 0.9, 0, 0.869333, 0, 0.232937, 1.63629, 0, 5.28206) - -[node name="BarrelA" type="MeshInstance3D" parent="."] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8.46089, 0.469088, -5.67514) -material_override = SubResource("StandardMaterial3D_mqp7f") -mesh = ExtResource("3_afokq") - -[node name="BoxA" type="MeshInstance3D" parent="."] -transform = Transform3D(1.5, 0, 0, 0, 1.5, 0, 0, 0, 1.5, 4.69587, 0, 0.473738) -mesh = ExtResource("4_mqp7f") - -[node name="BoxB" type="MeshInstance3D" parent="."] -transform = Transform3D(1.54555, 0, -1.70331, 0, 2.3, 0, 1.70331, 0, 1.54555, 6.56136, 0, -3.45931) -mesh = ExtResource("5_ipipj") - -[node name="CubePrototypeSmall2" type="MeshInstance3D" parent="."] -transform = Transform3D(0.712541, 0, -0.701631, 0, 1, 0, 0.701631, 0, 0.712541, 0.193116, 0.14412355, 6.76326) -mesh = ExtResource("7_f8cpb") - -[node name="CubePrototypeSmall3" type="MeshInstance3D" parent="."] -transform = Transform3D(0.712541, 0, -0.701631, 0, 1, 0, 0.701631, 0, 0.712541, 0.193116, 3.8178167, 12.751448) -material_override = SubResource("StandardMaterial3D_uesmb") -mesh = ExtResource("7_f8cpb") - -[node name="RigidBody3D2" type="RigidBody3D" parent="."] - -[node name="CubePrototypeSmall" type="MeshInstance3D" parent="RigidBody3D2"] -transform = Transform3D(0.949321, 0, 0.314307, -0.169926, 0.841256, 0.513238, -0.264413, -0.540637, 0.798622, -5.197, 6.3825, -12.265) -material_override = SubResource("StandardMaterial3D_aq7w3") -mesh = ExtResource("7_f8cpb") -skeleton = NodePath("../../root/@EditorNode@20441/@Panel@14/@VBoxContainer@15/DockHSplitLeftL/DockHSplitLeftR/DockHSplitMain/@VBoxContainer@26/DockVSplitCenter/@VSplitContainer@62/@VBoxContainer@63/@EditorMainScreen@103/MainScreen/@CanvasItemEditor@10870/@VSplitContainer@10515/@HSplitContainer@10517/@HSplitContainer@10519/@Control@10520/@SubViewportContainer@10521/@SubViewport@10522/Gym") - -[node name="CollisionShape3D" type="CollisionShape3D" parent="RigidBody3D2"] -transform = Transform3D(0.949321, 0, 0.314307, -0.169926, 0.841256, 0.513238, -0.264413, -0.540637, 0.798622, -5.197, 6.3825, -12.265) -shape = SubResource("ConvexPolygonShape3D_afokq") - [node name="player_root" parent="." instance=ExtResource("8_mqp7f")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.528881, 0, 0) @@ -128,70 +86,145 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 16.0969, 9.95703, 31.1327) size = Vector3(92.7308, 66.6152, 140.037) data = ExtResource("9_ipipj") -[node name="BoxC" type="MeshInstance3D" parent="."] -transform = Transform3D(0.7566984, 0, 0.65376407, 0, 1, 0, -0.65376407, 0, 0.7566984, 0.17067528, 0.024999619, -6.5876083) +[node name="Env" type="Node3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.7530127, 0.39157277, -11.776872) + +[node name="BarrelA" type="MeshInstance3D" parent="Env"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.707877, 0.077515215, 6.101732) +material_override = SubResource("StandardMaterial3D_mqp7f") +mesh = ExtResource("3_afokq") +skeleton = NodePath("../../root/@EditorNode@20441/@Panel@14/@VBoxContainer@15/DockHSplitLeftL/DockHSplitLeftR/DockHSplitMain/@VBoxContainer@26/DockVSplitCenter/@VSplitContainer@62/@VBoxContainer@63/@EditorMainScreen@103/MainScreen/@CanvasItemEditor@10870/@VSplitContainer@10515/@HSplitContainer@10517/@HSplitContainer@10519/@Control@10520/@SubViewportContainer@10521/@SubViewport@10522/Gym") + +[node name="BoxA" type="MeshInstance3D" parent="Env"] +transform = Transform3D(1.5, 0, 0, 0, 1.5, 0, 0, 0, 1.5, 8.448883, -0.39157277, 12.250609) +mesh = ExtResource("4_mqp7f") +skeleton = NodePath("../../root/@EditorNode@20441/@Panel@14/@VBoxContainer@15/DockHSplitLeftL/DockHSplitLeftR/DockHSplitMain/@VBoxContainer@26/DockVSplitCenter/@VSplitContainer@62/@VBoxContainer@63/@EditorMainScreen@103/MainScreen/@CanvasItemEditor@10870/@VSplitContainer@10515/@HSplitContainer@10517/@HSplitContainer@10519/@Control@10520/@SubViewportContainer@10521/@SubViewport@10522/Gym") + +[node name="BoxB" type="MeshInstance3D" parent="Env"] +transform = Transform3D(1.54555, 0, -1.70331, 0, 2.3, 0, 1.70331, 0, 1.54555, 10.314373, -0.39157277, 8.317562) +mesh = ExtResource("5_ipipj") +skeleton = NodePath("../../root/@EditorNode@20441/@Panel@14/@VBoxContainer@15/DockHSplitLeftL/DockHSplitLeftR/DockHSplitMain/@VBoxContainer@26/DockVSplitCenter/@VSplitContainer@62/@VBoxContainer@63/@EditorMainScreen@103/MainScreen/@CanvasItemEditor@10870/@VSplitContainer@10515/@HSplitContainer@10517/@HSplitContainer@10519/@Control@10520/@SubViewportContainer@10521/@SubViewport@10522/Gym") + +[node name="CubePrototypeSmall2" type="MeshInstance3D" parent="Env"] +transform = Transform3D(0.712541, 0, -0.701631, 0, 1, 0, 0.701631, 0, 0.712541, 3.9461286, -0.24744922, 18.54013) +mesh = ExtResource("7_f8cpb") +skeleton = NodePath("../../root/@EditorNode@20441/@Panel@14/@VBoxContainer@15/DockHSplitLeftL/DockHSplitLeftR/DockHSplitMain/@VBoxContainer@26/DockVSplitCenter/@VSplitContainer@62/@VBoxContainer@63/@EditorMainScreen@103/MainScreen/@CanvasItemEditor@10870/@VSplitContainer@10515/@HSplitContainer@10517/@HSplitContainer@10519/@Control@10520/@SubViewportContainer@10521/@SubViewport@10522/Gym") + +[node name="CubePrototypeSmall3" type="MeshInstance3D" parent="Env"] +transform = Transform3D(0.712541, 0, -0.701631, 0, 1, 0, 0.701631, 0, 0.712541, 3.9461286, 3.426244, 24.52832) +material_override = SubResource("StandardMaterial3D_uesmb") +mesh = ExtResource("7_f8cpb") +skeleton = NodePath("../../root/@EditorNode@20441/@Panel@14/@VBoxContainer@15/DockHSplitLeftL/DockHSplitLeftR/DockHSplitMain/@VBoxContainer@26/DockVSplitCenter/@VSplitContainer@62/@VBoxContainer@63/@EditorMainScreen@103/MainScreen/@CanvasItemEditor@10870/@VSplitContainer@10515/@HSplitContainer@10517/@HSplitContainer@10519/@Control@10520/@SubViewportContainer@10521/@SubViewport@10522/Gym") + +[node name="RigidBody3D2" type="RigidBody3D" parent="Env"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.7530127, -0.39157277, 11.776872) + +[node name="CubePrototypeSmall" type="MeshInstance3D" parent="Env/RigidBody3D2"] +transform = Transform3D(0.949321, 0, 0.314307, -0.169926, 0.841256, 0.513238, -0.264413, -0.540637, 0.798622, -5.197, 6.3825, -12.265) +material_override = SubResource("StandardMaterial3D_aq7w3") +mesh = ExtResource("7_f8cpb") +skeleton = NodePath("../../root/@EditorNode@20441/@Panel@14/@VBoxContainer@15/DockHSplitLeftL/DockHSplitLeftR/DockHSplitMain/@VBoxContainer@26/DockVSplitCenter/@VSplitContainer@62/@VBoxContainer@63/@EditorMainScreen@103/MainScreen/@CanvasItemEditor@10870/@VSplitContainer@10515/@HSplitContainer@10517/@HSplitContainer@10519/@Control@10520/@SubViewportContainer@10521/@SubViewport@10522/Gym") + +[node name="CollisionShape3D" type="CollisionShape3D" parent="Env/RigidBody3D2"] +transform = Transform3D(0.949321, 0, 0.314307, -0.169926, 0.841256, 0.513238, -0.264413, -0.540637, 0.798622, -5.197, 6.3825, -12.265) +shape = SubResource("ConvexPolygonShape3D_afokq") + +[node name="BoxC" type="MeshInstance3D" parent="Env"] +transform = Transform3D(0.7566984, 0, 0.65376407, 0, 1, 0, -0.65376407, 0, 0.7566984, 3.923688, -0.36657315, 5.1892633) mesh = ExtResource("10_iyjuv") +skeleton = NodePath("../../root/@EditorNode@20441/@Panel@14/@VBoxContainer@15/DockHSplitLeftL/DockHSplitLeftR/DockHSplitMain/@VBoxContainer@26/DockVSplitCenter/@VSplitContainer@62/@VBoxContainer@63/@EditorMainScreen@103/MainScreen/@CanvasItemEditor@10870/@VSplitContainer@10515/@HSplitContainer@10517/@HSplitContainer@10519/@Control@10520/@SubViewportContainer@10521/@SubViewport@10522/Gym") -[node name="DoorADecorated" type="MeshInstance3D" parent="."] -transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, -15.584036, 0.024999619, -19.843891) +[node name="DoorADecorated" type="MeshInstance3D" parent="Env"] +transform = Transform3D(-4.371139e-08, 0, -1, 0, 1, 0, 1, 0, -4.371139e-08, -11.831023, -0.36657315, -8.067019) mesh = ExtResource("11_gfgny") +skeleton = NodePath("../../root/@EditorNode@20441/@Panel@14/@VBoxContainer@15/DockHSplitLeftL/DockHSplitLeftR/DockHSplitMain/@VBoxContainer@26/DockVSplitCenter/@VSplitContainer@62/@VBoxContainer@63/@EditorMainScreen@103/MainScreen/@CanvasItemEditor@10870/@VSplitContainer@10515/@HSplitContainer@10517/@HSplitContainer@10519/@Control@10520/@SubViewportContainer@10521/@SubViewport@10522/Gym") -[node name="PalletLarge" type="MeshInstance3D" parent="."] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.6037169, 0.025000572, -21.528067) +[node name="PalletLarge" type="MeshInstance3D" parent="Env"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7.3567295, -0.3665722, -9.751195) mesh = ExtResource("12_aw2pe") +skeleton = NodePath("../../root/@EditorNode@20441/@Panel@14/@VBoxContainer@15/DockHSplitLeftL/DockHSplitLeftR/DockHSplitMain/@VBoxContainer@26/DockVSplitCenter/@VSplitContainer@62/@VBoxContainer@63/@EditorMainScreen@103/MainScreen/@CanvasItemEditor@10870/@VSplitContainer@10515/@HSplitContainer@10517/@HSplitContainer@10519/@Control@10520/@SubViewportContainer@10521/@SubViewport@10522/Gym") -[node name="PalletLarge2" type="MeshInstance3D" parent="."] -transform = Transform3D(0.99956816, 0, -0.029387116, 0, 1, 0, 0.029387116, 0, 0.99956816, 3.1583347, 0.52046394, -20.519901) +[node name="PalletLarge2" type="MeshInstance3D" parent="Env"] +transform = Transform3D(0.99956816, 0, -0.029387116, 0, 1, 0, 0.029387116, 0, 0.99956816, 6.9113474, 0.12889117, -8.74303) mesh = ExtResource("12_aw2pe") +skeleton = NodePath("../../root/@EditorNode@20441/@Panel@14/@VBoxContainer@15/DockHSplitLeftL/DockHSplitLeftR/DockHSplitMain/@VBoxContainer@26/DockVSplitCenter/@VSplitContainer@62/@VBoxContainer@63/@EditorMainScreen@103/MainScreen/@CanvasItemEditor@10870/@VSplitContainer@10515/@HSplitContainer@10517/@HSplitContainer@10519/@Control@10520/@SubViewportContainer@10521/@SubViewport@10522/Gym") -[node name="PalletLarge3" type="MeshInstance3D" parent="."] -transform = Transform3D(0.99656403, 0, 0.0828256, 0, 1, 0, -0.0828256, 0, 0.99656403, 4.4024363, 0.9654, -22.039927) +[node name="PalletLarge3" type="MeshInstance3D" parent="Env"] +transform = Transform3D(0.99656403, 0, 0.0828256, 0, 1, 0, -0.0828256, 0, 0.99656403, 8.155449, 0.5738272, -10.263055) mesh = ExtResource("12_aw2pe") +skeleton = NodePath("../../root/@EditorNode@20441/@Panel@14/@VBoxContainer@15/DockHSplitLeftL/DockHSplitLeftR/DockHSplitMain/@VBoxContainer@26/DockVSplitCenter/@VSplitContainer@62/@VBoxContainer@63/@EditorMainScreen@103/MainScreen/@CanvasItemEditor@10870/@VSplitContainer@10515/@HSplitContainer@10517/@HSplitContainer@10519/@Control@10520/@SubViewportContainer@10521/@SubViewport@10522/Gym") -[node name="PalletSmall" type="MeshInstance3D" parent="."] -transform = Transform3D(0.91708094, 0, -0.39870104, 0, 1, 0, 0.39870104, 0, 0.91708094, 8.676193, 0.025000095, -21.06688) +[node name="PalletSmall" type="MeshInstance3D" parent="Env"] +transform = Transform3D(0.91708094, 0, -0.39870104, 0, 1, 0, 0.39870104, 0, 0.91708094, 12.429206, -0.36657268, -9.290008) mesh = ExtResource("13_t4e8t") +skeleton = NodePath("../../root/@EditorNode@20441/@Panel@14/@VBoxContainer@15/DockHSplitLeftL/DockHSplitLeftR/DockHSplitMain/@VBoxContainer@26/DockVSplitCenter/@VSplitContainer@62/@VBoxContainer@63/@EditorMainScreen@103/MainScreen/@CanvasItemEditor@10870/@VSplitContainer@10515/@HSplitContainer@10517/@HSplitContainer@10519/@Control@10520/@SubViewportContainer@10521/@SubViewport@10522/Gym") -[node name="PrimitiveSlope" type="MeshInstance3D" parent="."] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 16.317268, 0.024999619, -16.646858) +[node name="PrimitiveSlope" type="MeshInstance3D" parent="Env"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 20.070282, -0.36657315, -4.8699865) mesh = ExtResource("14_86fmv") +skeleton = NodePath("../../root/@EditorNode@20441/@Panel@14/@VBoxContainer@15/DockHSplitLeftL/DockHSplitLeftR/DockHSplitMain/@VBoxContainer@26/DockVSplitCenter/@VSplitContainer@62/@VBoxContainer@63/@EditorMainScreen@103/MainScreen/@CanvasItemEditor@10870/@VSplitContainer@10515/@HSplitContainer@10517/@HSplitContainer@10519/@Control@10520/@SubViewportContainer@10521/@SubViewport@10522/Gym") -[node name="PrimitiveStairs" type="MeshInstance3D" parent="."] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.237097, 0.024998665, -18.559904) +[node name="PrimitiveStairs" type="MeshInstance3D" parent="Env"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.4840841, -0.3665741, -6.7830324) mesh = ExtResource("15_v6mjl") +skeleton = NodePath("../../root/@EditorNode@20441/@Panel@14/@VBoxContainer@15/DockHSplitLeftL/DockHSplitLeftR/DockHSplitMain/@VBoxContainer@26/DockVSplitCenter/@VSplitContainer@62/@VBoxContainer@63/@EditorMainScreen@103/MainScreen/@CanvasItemEditor@10870/@VSplitContainer@10515/@HSplitContainer@10517/@HSplitContainer@10519/@Control@10520/@SubViewportContainer@10521/@SubViewport@10522/Gym") -[node name="PrimitiveStairsHalf" type="MeshInstance3D" parent="."] -transform = Transform3D(0.8438319, 0, -0.53660756, 0, 1, 0, 0.53660756, 0, 0.8438319, -7.3606834, -3.35709, 12.253401) +[node name="PrimitiveStairsHalf" type="MeshInstance3D" parent="Env"] +transform = Transform3D(0.8438319, 0, -0.53660756, 0, 1, 0, 0.53660756, 0, 0.8438319, -3.6076708, -3.7486627, 24.030273) mesh = ExtResource("16_kvtwj") +skeleton = NodePath("../../root/@EditorNode@20441/@Panel@14/@VBoxContainer@15/DockHSplitLeftL/DockHSplitLeftR/DockHSplitMain/@VBoxContainer@26/DockVSplitCenter/@VSplitContainer@62/@VBoxContainer@63/@EditorMainScreen@103/MainScreen/@CanvasItemEditor@10870/@VSplitContainer@10515/@HSplitContainer@10517/@HSplitContainer@10519/@Control@10520/@SubViewportContainer@10521/@SubViewport@10522/Gym") -[node name="PrimitiveWall" type="MeshInstance3D" parent="."] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.851445, 0.024999619, -21.031487) +[node name="PrimitiveWall" type="MeshInstance3D" parent="Env"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.0984325, -0.36657315, -9.254615) mesh = ExtResource("17_26j3w") +skeleton = NodePath("../../root/@EditorNode@20441/@Panel@14/@VBoxContainer@15/DockHSplitLeftL/DockHSplitLeftR/DockHSplitMain/@VBoxContainer@26/DockVSplitCenter/@VSplitContainer@62/@VBoxContainer@63/@EditorMainScreen@103/MainScreen/@CanvasItemEditor@10870/@VSplitContainer@10515/@HSplitContainer@10517/@HSplitContainer@10519/@Control@10520/@SubViewportContainer@10521/@SubViewport@10522/Gym") -[node name="PrimitiveWall2" type="MeshInstance3D" parent="."] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.080717, 0.024999619, -17.017313) +[node name="PrimitiveWall2" type="MeshInstance3D" parent="Env"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.3277044, -0.36657315, -5.2404413) mesh = ExtResource("17_26j3w") +skeleton = NodePath("../../root/@EditorNode@20441/@Panel@14/@VBoxContainer@15/DockHSplitLeftL/DockHSplitLeftR/DockHSplitMain/@VBoxContainer@26/DockVSplitCenter/@VSplitContainer@62/@VBoxContainer@63/@EditorMainScreen@103/MainScreen/@CanvasItemEditor@10870/@VSplitContainer@10515/@HSplitContainer@10517/@HSplitContainer@10519/@Control@10520/@SubViewportContainer@10521/@SubViewport@10522/Gym") -[node name="PrimitiveWindow" type="MeshInstance3D" parent="."] -transform = Transform3D(-1, 0, 8.742278e-08, 0, 1, 0, -8.742278e-08, 0, -1, -13.528359, 0.024998665, -21.07315) +[node name="PrimitiveWindow" type="MeshInstance3D" parent="Env"] +transform = Transform3D(-1, 0, 8.742278e-08, 0, 1, 0, -8.742278e-08, 0, -1, -9.775347, -0.3665741, -9.296279) mesh = ExtResource("18_kjqju") +skeleton = NodePath("../../root/@EditorNode@20441/@Panel@14/@VBoxContainer@15/DockHSplitLeftL/DockHSplitLeftR/DockHSplitMain/@VBoxContainer@26/DockVSplitCenter/@VSplitContainer@62/@VBoxContainer@63/@EditorMainScreen@103/MainScreen/@CanvasItemEditor@10870/@VSplitContainer@10515/@HSplitContainer@10517/@HSplitContainer@10519/@Control@10520/@SubViewportContainer@10521/@SubViewport@10522/Gym") -[node name="TableMediumDecorated" type="MeshInstance3D" parent="."] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10, 0, -14) +[node name="TableMediumDecorated" type="MeshInstance3D" parent="Env"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.2469873, -0.39157277, -2.2231283) mesh = ExtResource("19_fypju") +skeleton = NodePath("../../root/@EditorNode@20441/@Panel@14/@VBoxContainer@15/DockHSplitLeftL/DockHSplitLeftR/DockHSplitMain/@VBoxContainer@26/DockVSplitCenter/@VSplitContainer@62/@VBoxContainer@63/@EditorMainScreen@103/MainScreen/@CanvasItemEditor@10870/@VSplitContainer@10515/@HSplitContainer@10517/@HSplitContainer@10519/@Control@10520/@SubViewportContainer@10521/@SubViewport@10522/Gym") -[node name="PrimitiveWall3" type="MeshInstance3D" parent="."] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -14, 0, -17) +[node name="PrimitiveWall3" type="MeshInstance3D" parent="Env"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.246987, -0.39157277, -5.2231283) mesh = ExtResource("17_26j3w") +skeleton = NodePath("../../root/@EditorNode@20441/@Panel@14/@VBoxContainer@15/DockHSplitLeftL/DockHSplitLeftR/DockHSplitMain/@VBoxContainer@26/DockVSplitCenter/@VSplitContainer@62/@VBoxContainer@63/@EditorMainScreen@103/MainScreen/@CanvasItemEditor@10870/@VSplitContainer@10515/@HSplitContainer@10517/@HSplitContainer@10519/@Control@10520/@SubViewportContainer@10521/@SubViewport@10522/Gym") -[node name="WallDoorway" type="MeshInstance3D" parent="."] -transform = Transform3D(-0.07428251, 0, -0.99723727, 0, 1, 0, 0.99723727, 0, -0.07428251, -15.431596, 0.024999619, -19.047731) +[node name="WallDoorway" type="MeshInstance3D" parent="Env"] +transform = Transform3D(-0.07428251, 0, -0.99723727, 0, 1, 0, 0.99723727, 0, -0.07428251, -11.678583, -0.36657315, -7.2708597) mesh = ExtResource("20_j11kn") +skeleton = NodePath("../../root/@EditorNode@20441/@Panel@14/@VBoxContainer@15/DockHSplitLeftL/DockHSplitLeftR/DockHSplitMain/@VBoxContainer@26/DockVSplitCenter/@VSplitContainer@62/@VBoxContainer@63/@EditorMainScreen@103/MainScreen/@CanvasItemEditor@10870/@VSplitContainer@10515/@HSplitContainer@10517/@HSplitContainer@10519/@Control@10520/@SubViewportContainer@10521/@SubViewport@10522/Gym") -[node name="PrimitiveFloor" type="MeshInstance3D" parent="."] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.287403, 3.0981884, -19.006363) +[node name="PrimitiveFloor" type="MeshInstance3D" parent="Env"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.5343904, 2.7066157, -7.229491) mesh = ExtResource("21_unwmg") +skeleton = NodePath("../../root/@EditorNode@20441/@Panel@14/@VBoxContainer@15/DockHSplitLeftL/DockHSplitLeftR/DockHSplitMain/@VBoxContainer@26/DockVSplitCenter/@VSplitContainer@62/@VBoxContainer@63/@EditorMainScreen@103/MainScreen/@CanvasItemEditor@10870/@VSplitContainer@10515/@HSplitContainer@10517/@HSplitContainer@10519/@Control@10520/@SubViewportContainer@10521/@SubViewport@10522/Gym") -[node name="PrimitiveFloor2" type="MeshInstance3D" parent="."] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -13.469146, 3.0981884, -19.006363) +[node name="PrimitiveFloor2" type="MeshInstance3D" parent="Env"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9.716133, 2.7066157, -7.229491) mesh = ExtResource("21_unwmg") +skeleton = NodePath("../../root/@EditorNode@20441/@Panel@14/@VBoxContainer@15/DockHSplitLeftL/DockHSplitLeftR/DockHSplitMain/@VBoxContainer@26/DockVSplitCenter/@VSplitContainer@62/@VBoxContainer@63/@EditorMainScreen@103/MainScreen/@CanvasItemEditor@10870/@VSplitContainer@10515/@HSplitContainer@10517/@HSplitContainer@10519/@Control@10520/@SubViewportContainer@10521/@SubViewport@10522/Gym") + +[node name="dummy" parent="Env" instance=ExtResource("2_40027")] +transform = Transform3D(0.232937, 0, -0.869333, 0, 0.9, 0, 0.869333, 0, 0.232937, 5.3893027, -0.39157277, 17.058931) + +[node name="CSGMesh3D" type="CSGMesh3D" parent="Env"] +transform = Transform3D(5.015, 0, 0, 0, 1, 0, 0, 0, 6.05, 3.7530127, -0.5165728, 11.776872) +material_override = ExtResource("1_b53sv") +use_collision = true +mesh = SubResource("BoxMesh_afokq") + +[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."] +stream = ExtResource("22_qx0ut") +volume_db = -20.0 +autoplay = true +parameters/looping = true diff --git a/UI/player interface.tscn b/UI/player interface.tscn new file mode 100644 index 0000000..0f1b130 --- /dev/null +++ b/UI/player interface.tscn @@ -0,0 +1,44 @@ +[gd_scene load_steps=6 format=3 uid="uid://c7hu51a2omayl"] + +[ext_resource type="Script" uid="uid://c6xp0y6y0gnjt" path="res://core/scripts/player_interface.gd" id="1_nbn0p"] +[ext_resource type="Texture2D" uid="uid://dtnvfhpg0fmlk" path="res://packs/Kenney-cursors/Outline/steps.svg" id="1_ur0rc"] +[ext_resource type="Script" uid="uid://bxo7f7f1th34m" path="res://core/scripts/player_selection_manager.gd" id="3_u7fvt"] +[ext_resource type="StyleBox" uid="uid://nn1eq5h68x1b" path="res://UI/selection_rect_style.tres" id="4_u7fvt"] + +[sub_resource type="Theme" id="Theme_ur0rc"] + +[node name="PlayerInterface" type="Control"] +modulate = Color(0.6745098, 1, 1, 1) +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +pivot_offset = Vector2(960, 540) +size_flags_horizontal = 3 +size_flags_vertical = 3 +mouse_filter = 2 +script = ExtResource("1_nbn0p") + +[node name="Button" type="Button" parent="."] +layout_mode = 0 +anchor_top = 1.0 +anchor_bottom = 1.0 +offset_left = 35.0 +offset_top = -62.559998 +offset_right = 169.0 +offset_bottom = -22.559937 +grow_vertical = 0 +pivot_offset = Vector2(0, 40) +theme = SubResource("Theme_ur0rc") +text = "Test Button" +icon = ExtResource("1_ur0rc") + +[node name="SelectionManager" type="Control" parent="."] +process_mode = 3 +process_priority = -1 +anchors_preset = 0 +mouse_filter = 2 +script = ExtResource("3_u7fvt") +rect_style = ExtResource("4_u7fvt") diff --git a/UI/selection_rect_style.tres b/UI/selection_rect_style.tres new file mode 100644 index 0000000..3312862 --- /dev/null +++ b/UI/selection_rect_style.tres @@ -0,0 +1,13 @@ +[gd_resource type="StyleBoxFlat" format=3 uid="uid://nn1eq5h68x1b"] + +[resource] +bg_color = Color(0, 0.7176471, 0.38039216, 0.09411765) +border_width_left = 2 +border_width_top = 2 +border_width_right = 2 +border_width_bottom = 2 +border_color = Color(0, 1, 0, 0.49019608) +corner_radius_top_left = 5 +corner_radius_top_right = 5 +corner_radius_bottom_right = 5 +corner_radius_bottom_left = 5 diff --git a/core/base-classes/player.tscn b/core/base-classes/player.tscn index bd756e3..2a9eb26 100644 --- a/core/base-classes/player.tscn +++ b/core/base-classes/player.tscn @@ -1,7 +1,8 @@ -[gd_scene load_steps=5 format=3 uid="uid://djj1fc8qm10t6"] +[gd_scene load_steps=6 format=3 uid="uid://djj1fc8qm10t6"] [ext_resource type="Script" uid="uid://c23s1syo7wjm8" path="res://core/scripts/player.gd" id="1_e571r"] [ext_resource type="Script" uid="uid://d2f3kt810ncsa" path="res://core/scripts/cursor_behaviour.gd" id="2_ipmo0"] +[ext_resource type="PackedScene" uid="uid://c7hu51a2omayl" path="res://ui/player interface.tscn" id="3_8c7bm"] [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_e571r"] blend_mode = 1 @@ -36,4 +37,6 @@ mesh = SubResource("SphereMesh_ipmo0") [node name="CursorComponent" type="Node" parent="."] script = ExtResource("2_ipmo0") +[node name="PlayerInterface" parent="." instance=ExtResource("3_8c7bm")] + [connection signal="cursor_edge_scrolling" from="." to="CursorComponent" method="_on_player_root_cursor_edge_scrolling"] diff --git a/core/scripts/player.gd b/core/scripts/player.gd index ed165dd..b9185ad 100644 --- a/core/scripts/player.gd +++ b/core/scripts/player.gd @@ -22,7 +22,10 @@ var zoom_disabled:bool = false var edge_scroll_disabled:bool = ProjectSettings.get_setting("game/controls/edge_scrolling_disabled",false) var invert_rotation_x:bool = ProjectSettings.get_setting("game/controls/invert_cam_rotation_x",false) var invert_rotation_y:bool = ProjectSettings.get_setting("game/controls/invert_cam_rotation_y",false) +var default_mouse_mode:= Input.MOUSE_MODE_VISIBLE + var rotation_mode:bool = false + @export_range(0,1,0.01) var rotation_speed_x:float = ProjectSettings.get_setting("game/controls/cam_rotation_speed_x",0.5) @export_range(0,1,0.01) var rotation_speed_y:float = ProjectSettings.get_setting("game/controls/cam_rotation_speed_y",0.5) @@ -36,7 +39,7 @@ const quit_screen_load = preload("uid://hne6njnc23ur") func _ready(): - Input.mouse_mode = Input.MOUSE_MODE_CONFINED # Maybe should be moved in a better script + Input.mouse_mode = default_mouse_mode # Maybe should be moved in a better script # Called every frame. 'delta' is the elapsed time since the previous frame. @@ -47,15 +50,16 @@ func _process(delta: float) -> void: func _notification(what: int): + if edge_scroll_disabled:return if what == NOTIFICATION_APPLICATION_FOCUS_OUT: print("focus out!") #get_tree().paused = true - edge_scroll_disabled = true + #edge_scroll_disabled = true move_disabled = true if what == NOTIFICATION_APPLICATION_FOCUS_IN: print("focus in!") #get_tree().paused = false - edge_scroll_disabled = false + #edge_scroll_disabled = false move_disabled = false if what == NOTIFICATION_WM_MOUSE_ENTER: print("focus in!") @@ -81,7 +85,7 @@ func _unhandled_input(event: InputEvent) -> void: if event.is_action_released("rotation_mode"): rotation_mode = false - Input.mouse_mode = Input.MOUSE_MODE_CONFINED + Input.mouse_mode = default_mouse_mode if event.is_action_pressed("DEBUG-quit"): quit_game() diff --git a/core/scripts/player_interface.gd b/core/scripts/player_interface.gd new file mode 100644 index 0000000..a1d4176 --- /dev/null +++ b/core/scripts/player_interface.gd @@ -0,0 +1,11 @@ +extends Control + + +# 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: + pass diff --git a/core/scripts/player_interface.gd.uid b/core/scripts/player_interface.gd.uid new file mode 100644 index 0000000..3507930 --- /dev/null +++ b/core/scripts/player_interface.gd.uid @@ -0,0 +1 @@ +uid://c6xp0y6y0gnjt diff --git a/core/scripts/player_selection_manager.gd b/core/scripts/player_selection_manager.gd new file mode 100644 index 0000000..e95c7e5 --- /dev/null +++ b/core/scripts/player_selection_manager.gd @@ -0,0 +1,61 @@ +extends Control + +var selecting:=false +var drag_start: Vector2 +var select_box: Rect2 +@onready var box_color: Color = ProjectSettings.get_setting("game/interface/selection_rectangle_color",Color("#00ff0066")) +@onready var box_color_outline: Color = ProjectSettings.get_setting("game/interface/selection_rectangle_color_outline",Color("#00ff00")) + +@onready var optimized_rect:bool = ProjectSettings.get_setting("game/interface/optimized_rectangle",false) +@export var rect_style: StyleBoxFlat + + +func _ready() -> void: + if optimized_rect:return + + +func _unhandled_input(e: InputEvent) -> void: + if e is InputEventMouseButton and e.button_index == MOUSE_BUTTON_LEFT: + if e.pressed: + selecting = true + drag_start = e.position + else: # when button is released + selecting = false + if drag_start.is_equal_approx(e.position): + select_box = Rect2(e.position, Vector2.ZERO) # when just clicked + + queue_redraw() + + update_selected_units() + elif selecting and e is InputEventMouseMotion: + var x_min = min(drag_start.x, e.position.x) + var y_min = min(drag_start.y, e.position.y) + select_box = Rect2(x_min,y_min, + max(drag_start.x,e.position.x) - x_min, + max(drag_start.y,e.position.y) - y_min) + + update_selected_units() + queue_redraw() + + +#HACK :https://www.youtube.com/watch?v=NxW9t-YgJkM +func update_selected_units() -> int: + var units_selected := 0 + for unit in get_tree().get_nodes_in_group('selectable-units'): #TODO: currently searching in all unit in the world. Should search in spawned in the chunk + if unit.is_in_selection(select_box): + unit.select() + units_selected += 1 + else: + unit.deselect() + + return units_selected + + +func _draw() -> void: + if not selecting:return + if select_box and rect_style: + if optimized_rect: + draw_rect(select_box,box_color) + draw_rect(select_box,box_color_outline,false,2.0,true) + elif rect_style: + draw_style_box(rect_style,select_box) diff --git a/core/scripts/player_selection_manager.gd.uid b/core/scripts/player_selection_manager.gd.uid new file mode 100644 index 0000000..484ecd8 --- /dev/null +++ b/core/scripts/player_selection_manager.gd.uid @@ -0,0 +1 @@ +uid://bxo7f7f1th34m diff --git a/dev/debug_tools.tscn b/dev/debug_tools.tscn index 4acbc71..f566f3f 100644 --- a/dev/debug_tools.tscn +++ b/dev/debug_tools.tscn @@ -25,6 +25,8 @@ grow_vertical = 2 pivot_offset = Vector2(960, 540) size_flags_horizontal = 3 size_flags_vertical = 3 +mouse_filter = 2 +mouse_behavior_recursive = 2 script = ExtResource("1_xqln8") MouseOverlay = NodePath("MouseCursorOverlay") @@ -36,12 +38,15 @@ offset_right = 32.0 offset_bottom = 32.0 mouse_filter = 2 theme_override_styles/panel = SubResource("StyleBoxFlat_xqln8") +metadata/_edit_use_anchors_ = true [node name="TextureRect" type="TextureRect" parent="MouseCursorOverlay/PanelContainer"] layout_mode = 0 offset_right = 40.0 offset_bottom = 40.0 +mouse_filter = 2 stretch_mode = 2 +metadata/_edit_use_anchors_ = true [node name="HotSpotMarker" type="ColorRect" parent="MouseCursorOverlay/PanelContainer/TextureRect"] custom_minimum_size = Vector2(1, 1) @@ -50,3 +55,4 @@ offset_right = 4.0 offset_bottom = 4.0 pivot_offset = Vector2(2, 2) color = Color(1, 0.3137255, 1, 1) +metadata/_edit_use_anchors_ = true diff --git a/project.godot b/project.godot index 4da982f..9507630 100644 --- a/project.godot +++ b/project.godot @@ -50,6 +50,7 @@ controls/cam_rotation_speed_x=0.2 controls/cam_rotation_speed_y=0.2 controls/invert_cam_rotation_x=false controls/invert_cam_rotation_y=true +controls/edge_scrolling_disabled=true [input] @@ -93,6 +94,7 @@ rotation_mode={ "deadzone": 0.2, "events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(98, 12),"global_position":Vector2(107, 60),"factor":1.0,"button_index":3,"canceled":false,"pressed":true,"double_click":false,"script":null) , 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":4194326,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +, Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":4,"position":Vector2(71, 18),"global_position":Vector2(80, 64),"factor":1.0,"button_index":3,"canceled":false,"pressed":true,"double_click":false,"script":null) ] } DEBUG-quit={ @@ -101,6 +103,12 @@ DEBUG-quit={ ] } +[internationalization] + +locale/locale_filter_mode=1 +locale/language_filter=["en", "fr"] +locale/country_filter=["FR"] + [physics] 3d/run_on_separate_thread=true @@ -108,4 +116,5 @@ DEBUG-quit={ [rendering] +global_illumination/voxel_gi/quality=1 anti_aliasing/quality/msaa_3d=2