diff --git a/components/portal_prefab.tscn b/components/portal_prefab.tscn new file mode 100644 index 0000000..725f87b --- /dev/null +++ b/components/portal_prefab.tscn @@ -0,0 +1,58 @@ +[gd_scene load_steps=6 format=4 uid="uid://dl3qjl3fwwvlm"] + +[ext_resource type="Script" uid="uid://cw1r4c1d7beyv" path="res://addons/portals/scripts/portal_3d.gd" id="1_1cbrx"] +[ext_resource type="Material" uid="uid://dcfkcyddxkglf" path="res://addons/portals/materials/editor-preview-portal-material.tres" id="2_rfxbf"] +[ext_resource type="Script" uid="uid://bxcel82b180o3" path="res://addons/portals/scripts/portal_boxmesh.gd" id="3_xuvre"] + +[sub_resource type="ArrayMesh" id="ArrayMesh_o6p8a"] +_surfaces = [{ +"aabb": AABB(-1, -1, -1, 2, 2, 1), +"attribute_data": PackedByteArray("AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPwAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAIA/AACAPw=="), +"format": 34359742487, +"index_count": 36, +"index_data": PackedByteArray("AAABAAQABAABAAUAAQADAAUABQADAAcAAwACAAcABwACAAYAAgAAAAYABgAAAAQABAAFAAYABgAFAAcAAAABAAIAAgABAAMA"), +"primitive": 3, +"uv_scale": Vector4(0, 0, 0, 0), +"vertex_count": 8, +"vertex_data": PackedByteArray("AACAvwAAgD8AAAAAAACAPwAAgD8AAAAAAACAvwAAgL8AAAAAAACAPwAAgL8AAAAAAACAvwAAgD8AAIC/AACAPwAAgD8AAIC/AACAvwAAgL8AAIC/AACAPwAAgL8AAIC//3//f/9/AID/f/9//38AgP9//3//fwCA/3//f/9/AID/f/9//38AgP9//3//fwCA/3//f/9/AID/f/9//38AgA==") +}] +script = ExtResource("3_xuvre") +size = Vector3(2, 2, 1) + +[sub_resource type="BoxShape3D" id="BoxShape3D_godo4"] +size = Vector3(2, 2, 1) + +[node name="PortalPrefab" type="Node3D" groups=["portals"]] +process_priority = 100 +process_physics_priority = 100 +script = ExtResource("1_1cbrx") +_portal_mesh_path = NodePath("Portal3D_Mesh") +_teleport_area_path = NodePath("TeleportArea") +_teleport_collider_path = NodePath("TeleportArea/Collider") +portal_size = Vector2(2, 2) +portal_render_layer = 524288 +portal_frame_width = 0.0 +viewport_size_mode = 1 +_viewport_size_max_width_absolute = 1920 +view_direction = 1 +is_teleport = true +teleport_direction = 0 +rigidbody_boost = 0.0 +teleport_collision_mask = 32768 +teleport_tolerance = 0.5 +teleport_interactions = 0 +start_deactivated = false +metadata/_custom_type_script = "uid://cw1r4c1d7beyv" +metadata/_edit_group_ = true + +[node name="Portal3D_Mesh" type="MeshInstance3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 0.05, 0, 0, 0) +layers = 524288 +material_override = ExtResource("2_rfxbf") +cast_shadow = 0 +mesh = SubResource("ArrayMesh_o6p8a") + +[node name="TeleportArea" type="Area3D" parent="."] + +[node name="Collider" type="CollisionShape3D" parent="TeleportArea"] +shape = SubResource("BoxShape3D_godo4") diff --git a/icon.png b/icon.png new file mode 100644 index 0000000..e95e19d Binary files /dev/null and b/icon.png differ diff --git a/icon.png.import b/icon.png.import new file mode 100644 index 0000000..69172a5 --- /dev/null +++ b/icon.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dys7bqm5frcfe" +path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://icon.png" +dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +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/project.godot b/project.godot index c41bd2d..a140ffe 100644 --- a/project.godot +++ b/project.godot @@ -14,11 +14,13 @@ portals/gizmo_forward_color=Color(0.464396, 2.33434e-06, 0.285212, 1) [application] -config/name="AntichamberStairs" +config/name="Many Paths To Nowhere" +config/description="This is a recreation of an Antichamber puzzle called Many Paths To Nowhere. It serves as a showcase of my portal plugin." +config/version="1.0.0" config/tags=PackedStringArray("demo", "dp", "game") run/main_scene="uid://by4fsuj02uyb3" config/features=PackedStringArray("4.4", "Forward Plus") -config/icon="res://icon.svg" +config/icon="uid://dys7bqm5frcfe" [display] diff --git a/world.tscn b/world.tscn index b5c8267..31bcac0 100644 --- a/world.tscn +++ b/world.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=20 format=4 uid="uid://by4fsuj02uyb3"] +[gd_scene load_steps=16 format=3 uid="uid://by4fsuj02uyb3"] [ext_resource type="Script" uid="uid://7uicahbwx5vb" path="res://scripts/antichamber.gd" id="1_2o6r5"] [ext_resource type="Script" uid="uid://bdclx4q3c332j" path="res://scripts/player.gd" id="1_f3sb7"] @@ -10,9 +10,7 @@ [ext_resource type="PackedScene" uid="uid://dg8u30dpogytq" path="res://meshes/Hall-Win.glb" id="8_ioo17"] [ext_resource type="PackedScene" uid="uid://bwox38sbk15lq" path="res://meshes/Hall-AfterStairs-Outline.glb" id="9_hiqwa"] [ext_resource type="PackedScene" uid="uid://bxbrle74hc0x7" path="res://meshes/Hall-Win-Outline.glb" id="9_wse8f"] -[ext_resource type="Script" uid="uid://cw1r4c1d7beyv" path="res://addons/portals/scripts/portal_3d.gd" id="10_ic0uy"] -[ext_resource type="Material" uid="uid://dcfkcyddxkglf" path="res://addons/portals/materials/editor-preview-portal-material.tres" id="11_2o6r5"] -[ext_resource type="Script" uid="uid://bxcel82b180o3" path="res://addons/portals/scripts/portal_boxmesh.gd" id="11_k3n1d"] +[ext_resource type="PackedScene" uid="uid://dl3qjl3fwwvlm" path="res://components/portal_prefab.tscn" id="11_ic0uy"] [sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_f3sb7"] sky_horizon_color = Color(0.662243, 0.671743, 0.686743, 1) @@ -34,44 +32,12 @@ glow_enabled = true radius = 0.375 height = 1.5 -[sub_resource type="ArrayMesh" id="ArrayMesh_70uel"] -_surfaces = [{ -"aabb": AABB(-1, -1, -1, 2, 2, 1), -"attribute_data": PackedByteArray("AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPwAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAIA/AACAPw=="), -"format": 34359742487, -"index_count": 36, -"index_data": PackedByteArray("AAABAAQABAABAAUAAQADAAUABQADAAcAAwACAAcABwACAAYAAgAAAAYABgAAAAQABAAFAAYABgAFAAcAAAABAAIAAgABAAMA"), -"primitive": 3, -"uv_scale": Vector4(0, 0, 0, 0), -"vertex_count": 8, -"vertex_data": PackedByteArray("AACAvwAAgD8AAAAAAACAPwAAgD8AAAAAAACAvwAAgL8AAAAAAACAPwAAgL8AAAAAAACAvwAAgD8AAIC/AACAPwAAgD8AAIC/AACAvwAAgL8AAIC/AACAPwAAgL8AAIC//3//f/9/AID/f/9//38AgP9//3//fwCA/3//f/9/AID/f/9//38AgP9//3//fwCA/3//f/9/AID/f/9//38AgA==") -}] -script = ExtResource("11_k3n1d") -size = Vector3(2, 2, 1) - -[sub_resource type="BoxShape3D" id="BoxShape3D_hiqwa"] -size = Vector3(2, 2, 1) - [node name="World" type="Node3D"] script = ExtResource("1_2o6r5") [node name="WorldEnvironment" type="WorldEnvironment" parent="."] environment = SubResource("Environment_tlwt5") -[node name="Player" type="CharacterBody3D" parent="." node_paths=PackedStringArray("camera")] -transform = Transform3D(1, 0, -1.58933e-08, 0, 1, 0, 1.58933e-08, 0, 1, -4.42657, 1.05097, 10.9577) -collision_layer = 32769 -floor_max_angle = 0.872665 -script = ExtResource("1_f3sb7") -camera = NodePath("Camera3D") -SPEED = 3.0 - -[node name="CollisionShape3D" type="CollisionShape3D" parent="Player"] -shape = SubResource("CapsuleShape3D_f3sb7") - -[node name="Camera3D" type="Camera3D" parent="Player"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.2, 0) - [node name="Hall-BeforeStairs" parent="." instance=ExtResource("2_fj7yv")] [node name="Hall-BeforeStairs-Outline" parent="Hall-BeforeStairs" instance=ExtResource("3_ioo17")] @@ -173,157 +139,40 @@ omni_attenuation = -1.25 transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, 0, 2.8) text = "YOU WIN!!!" -[node name="StairsPortal" type="Node3D" parent="." node_paths=PackedStringArray("exit_portal") groups=["portals"]] +[node name="Player" type="CharacterBody3D" parent="." node_paths=PackedStringArray("camera")] +transform = Transform3D(1, 0, -1.58933e-08, 0, 1, 0, 1.58933e-08, 0, 1, -4.42657, 1.05097, 10.9577) +collision_layer = 32769 +floor_max_angle = 0.872665 +script = ExtResource("1_f3sb7") +camera = NodePath("Camera3D") +SPEED = 3.0 + +[node name="CollisionShape3D" type="CollisionShape3D" parent="Player"] +shape = SubResource("CapsuleShape3D_f3sb7") + +[node name="Camera3D" type="Camera3D" parent="Player"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.2, 0) +near = 0.001 + +[node name="StairsPortal" parent="." node_paths=PackedStringArray("exit_portal") instance=ExtResource("11_ic0uy")] unique_name_in_owner = true -process_priority = 100 -process_physics_priority = 100 -transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, -6, 1, 3) -script = ExtResource("10_ic0uy") -_portal_mesh_path = NodePath("Portal3D_Mesh") -_teleport_area_path = NodePath("TeleportArea") -_teleport_collider_path = NodePath("TeleportArea/Collider") -portal_size = Vector2(2, 2) +transform = Transform3D(-1, 0, -1.50996e-07, 0, 1, 0, 1.50996e-07, 0, -1, -6, 1, 3) exit_portal = NodePath("../StartPortal") -portal_render_layer = 524288 -portal_frame_width = 0.0 -viewport_size_mode = 1 -_viewport_size_max_width_absolute = 1920 -view_direction = 0 -is_teleport = true -teleport_direction = 2 -rigidbody_boost = 0.0 -teleport_collision_mask = 32768 -teleport_tolerance = 0.5 -teleport_interactions = 3 -start_deactivated = false -metadata/_custom_type_script = "uid://cw1r4c1d7beyv" -metadata/_edit_group_ = true -[node name="Portal3D_Mesh" type="MeshInstance3D" parent="StairsPortal"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 0.05, 0, 0, 0) -layers = 524288 -material_override = ExtResource("11_2o6r5") -cast_shadow = 0 -mesh = SubResource("ArrayMesh_70uel") - -[node name="TeleportArea" type="Area3D" parent="StairsPortal"] - -[node name="Collider" type="CollisionShape3D" parent="StairsPortal/TeleportArea"] -shape = SubResource("BoxShape3D_hiqwa") - -[node name="StartPortal" type="Node3D" parent="." node_paths=PackedStringArray("exit_portal") groups=["portals"]] +[node name="StartPortal" parent="." node_paths=PackedStringArray("exit_portal") instance=ExtResource("11_ic0uy")] unique_name_in_owner = true -process_priority = 100 -process_physics_priority = 100 -transform = Transform3D(1, 0, 1.74846e-07, 0, 1, 0, -1.74846e-07, 0, 1, -10, 1, 6.9) -script = ExtResource("10_ic0uy") -_portal_mesh_path = NodePath("Portal3D_Mesh") -_teleport_area_path = NodePath("TeleportArea") -_teleport_collider_path = NodePath("TeleportArea/Collider") -portal_size = Vector2(2, 2) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10, 1, 6.9) exit_portal = NodePath("../StairsPortal") -portal_render_layer = 524288 -portal_frame_width = 0.0 -viewport_size_mode = 1 -_viewport_size_max_width_absolute = 1920 -view_direction = 0 -is_teleport = true -teleport_direction = 2 -rigidbody_boost = 0.0 -teleport_collision_mask = 32768 -teleport_tolerance = 0.5 -teleport_interactions = 3 -start_deactivated = false -metadata/_custom_type_script = "uid://cw1r4c1d7beyv" -metadata/_edit_group_ = true -[node name="Portal3D_Mesh" type="MeshInstance3D" parent="StartPortal"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 0.05, 0, 0, 0) -layers = 524288 -material_override = ExtResource("11_2o6r5") -cast_shadow = 0 -mesh = SubResource("ArrayMesh_70uel") - -[node name="TeleportArea" type="Area3D" parent="StartPortal"] - -[node name="Collider" type="CollisionShape3D" parent="StartPortal/TeleportArea"] -shape = SubResource("BoxShape3D_hiqwa") - -[node name="BluePortal" type="Node3D" parent="." node_paths=PackedStringArray("exit_portal") groups=["portals"]] +[node name="BluePortal" parent="." node_paths=PackedStringArray("exit_portal") instance=ExtResource("11_ic0uy")] unique_name_in_owner = true -process_priority = 100 -process_physics_priority = 100 transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.6, 3.2, 2.1) -script = ExtResource("10_ic0uy") -_portal_mesh_path = NodePath("Portal3D_Mesh") -_teleport_area_path = NodePath("TeleportArea") -_teleport_collider_path = NodePath("TeleportArea/Collider") -portal_size = Vector2(2, 2) exit_portal = NodePath("../StairsPortal") -portal_render_layer = 524288 -portal_frame_width = 0.0 -viewport_size_mode = 1 -_viewport_size_max_width_absolute = 1920 -view_direction = 0 -is_teleport = true -teleport_direction = 2 -rigidbody_boost = 0.0 -teleport_collision_mask = 32768 -teleport_tolerance = 0.5 -teleport_interactions = 3 -start_deactivated = false -metadata/_custom_type_script = "uid://cw1r4c1d7beyv" -metadata/_edit_group_ = true -[node name="Portal3D_Mesh" type="MeshInstance3D" parent="BluePortal"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 0.05, 0, 0, 0) -layers = 524288 -material_override = ExtResource("11_2o6r5") -cast_shadow = 0 -mesh = SubResource("ArrayMesh_70uel") - -[node name="TeleportArea" type="Area3D" parent="BluePortal"] - -[node name="Collider" type="CollisionShape3D" parent="BluePortal/TeleportArea"] -shape = SubResource("BoxShape3D_hiqwa") - -[node name="RedPortal" type="Node3D" parent="." node_paths=PackedStringArray("exit_portal") groups=["portals"]] +[node name="RedPortal" parent="." node_paths=PackedStringArray("exit_portal") instance=ExtResource("11_ic0uy")] unique_name_in_owner = true -process_priority = 100 -process_physics_priority = 100 transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.6, -1.2, -2.38419e-07) -script = ExtResource("10_ic0uy") -_portal_mesh_path = NodePath("Portal3D_Mesh") -_teleport_area_path = NodePath("TeleportArea") -_teleport_collider_path = NodePath("TeleportArea/Collider") -portal_size = Vector2(2, 2) exit_portal = NodePath("../StairsPortal") -portal_render_layer = 524288 -portal_frame_width = 0.0 -viewport_size_mode = 1 -_viewport_size_max_width_absolute = 1920 -view_direction = 0 -is_teleport = true -teleport_direction = 2 -rigidbody_boost = 0.0 -teleport_collision_mask = 32768 -teleport_tolerance = 0.5 -teleport_interactions = 3 -start_deactivated = false -metadata/_custom_type_script = "uid://cw1r4c1d7beyv" -metadata/_edit_group_ = true - -[node name="Portal3D_Mesh" type="MeshInstance3D" parent="RedPortal"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 0.05, 0, 0, 0) -layers = 524288 -material_override = ExtResource("11_2o6r5") -cast_shadow = 0 -mesh = SubResource("ArrayMesh_70uel") - -[node name="TeleportArea" type="Area3D" parent="RedPortal"] - -[node name="Collider" type="CollisionShape3D" parent="RedPortal/TeleportArea"] -shape = SubResource("BoxShape3D_hiqwa") [connection signal="on_teleport" from="BluePortal" to="." method="_on_blue_portal_on_teleport"] [connection signal="on_teleport" from="RedPortal" to="." method="_on_red_portal_on_teleport"]