Opening door + primitive portal
This commit is contained in:
parent
8931d592c5
commit
c6e43663a6
@ -23,3 +23,8 @@ window/size/viewport_height=1080
|
|||||||
[editor_plugins]
|
[editor_plugins]
|
||||||
|
|
||||||
enabled=PackedStringArray("res://addons/portals/plugin.cfg", "res://addons/proton_scatter/plugin.cfg")
|
enabled=PackedStringArray("res://addons/portals/plugin.cfg", "res://addons/proton_scatter/plugin.cfg")
|
||||||
|
|
||||||
|
[layer_names]
|
||||||
|
|
||||||
|
3d_physics/layer_1="World"
|
||||||
|
3d_physics/layer_2="Player"
|
||||||
|
104
scenes/portal_door.tscn
Normal file
104
scenes/portal_door.tscn
Normal file
File diff suppressed because one or more lines are too long
@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=18 format=3 uid="uid://dtbrnxalat1d4"]
|
[gd_scene load_steps=23 format=4 uid="uid://dtbrnxalat1d4"]
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://wsu3b5udqtdu" path="res://meshes/village/Wall_UnevenBrick_Straight.gltf" id="1_4mrxx"]
|
[ext_resource type="PackedScene" uid="uid://wsu3b5udqtdu" path="res://meshes/village/Wall_UnevenBrick_Straight.gltf" id="1_4mrxx"]
|
||||||
[ext_resource type="Texture2D" uid="uid://bgc5rl13dopuj" path="res://addons/proton_scatter/demos/assets/textures/sky_2.png" id="1_w7kh3"]
|
[ext_resource type="Texture2D" uid="uid://bgc5rl13dopuj" path="res://addons/proton_scatter/demos/assets/textures/sky_2.png" id="1_w7kh3"]
|
||||||
@ -8,8 +8,10 @@
|
|||||||
[ext_resource type="PackedScene" uid="uid://b1eeowrmy2b7j" path="res://meshes/village/Wall_UnevenBrick_Window_Wide_Round.gltf" id="4_e3hyu"]
|
[ext_resource type="PackedScene" uid="uid://b1eeowrmy2b7j" path="res://meshes/village/Wall_UnevenBrick_Window_Wide_Round.gltf" id="4_e3hyu"]
|
||||||
[ext_resource type="PackedScene" uid="uid://7bhh6aas0sxr" path="res://meshes/village/Window_Wide_Round1.gltf" id="5_q5onr"]
|
[ext_resource type="PackedScene" uid="uid://7bhh6aas0sxr" path="res://meshes/village/Window_Wide_Round1.gltf" id="5_q5onr"]
|
||||||
[ext_resource type="PackedScene" uid="uid://c3fv7wek4rjjt" path="res://meshes/village/Floor_WoodLight.gltf" id="6_jhx03"]
|
[ext_resource type="PackedScene" uid="uid://c3fv7wek4rjjt" path="res://meshes/village/Floor_WoodLight.gltf" id="6_jhx03"]
|
||||||
[ext_resource type="PackedScene" uid="uid://berkexxyn3lq4" path="res://meshes/village/DoorFrame_Round_WoodDark.gltf" id="7_o8fc1"]
|
[ext_resource type="PackedScene" uid="uid://cqm26jf01p8uv" path="res://scenes/portal_door.tscn" id="10_q5onr"]
|
||||||
[ext_resource type="PackedScene" uid="uid://db427w7dfyhno" path="res://meshes/village/Door_8_Round.gltf" id="8_xo05s"]
|
[ext_resource type="Script" uid="uid://cw1r4c1d7beyv" path="res://addons/portals/scripts/portal_3d.gd" id="13_xo05s"]
|
||||||
|
[ext_resource type="Material" uid="uid://dcfkcyddxkglf" path="res://addons/portals/materials/editor-preview-portal-material.tres" id="14_dss4m"]
|
||||||
|
[ext_resource type="Script" uid="uid://bxcel82b180o3" path="res://addons/portals/scripts/portal_boxmesh.gd" id="15_7t5mc"]
|
||||||
[ext_resource type="PackedScene" uid="uid://dc4ynch2n1ish" path="res://meshes/village/Roof_RoundTiles_4x4.gltf" id="22_kpybi"]
|
[ext_resource type="PackedScene" uid="uid://dc4ynch2n1ish" path="res://meshes/village/Roof_RoundTiles_4x4.gltf" id="22_kpybi"]
|
||||||
[ext_resource type="PackedScene" uid="uid://b7mjoyryltilk" path="res://meshes/village/Roof_Front_Brick4.gltf" id="23_ctatt"]
|
[ext_resource type="PackedScene" uid="uid://b7mjoyryltilk" path="res://meshes/village/Roof_Front_Brick4.gltf" id="23_ctatt"]
|
||||||
[ext_resource type="Script" uid="uid://d2crarvkhd45r" path="res://scripts/player.gd" id="23_kpybi"]
|
[ext_resource type="Script" uid="uid://d2crarvkhd45r" path="res://scripts/player.gd" id="23_kpybi"]
|
||||||
@ -37,6 +39,27 @@ fog_sky_affect = 0.23
|
|||||||
radius = 0.4
|
radius = 0.4
|
||||||
height = 1.75
|
height = 1.75
|
||||||
|
|
||||||
|
[sub_resource type="BoxShape3D" id="BoxShape3D_q5onr"]
|
||||||
|
size = Vector3(1.83496, 2.19373, 1.46497)
|
||||||
|
|
||||||
|
[sub_resource type="ArrayMesh" id="ArrayMesh_lakw3"]
|
||||||
|
_surfaces = [{
|
||||||
|
"aabb": AABB(-0.75, -1.25, -1, 1.5, 2.5, 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("AABAvwAAoD8AAAAAAABAPwAAoD8AAAAAAABAvwAAoL8AAAAAAABAPwAAoL8AAAAAAABAvwAAoD8AAIC/AABAPwAAoD8AAIC/AABAvwAAoL8AAIC/AABAPwAAoL8AAIC//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("15_7t5mc")
|
||||||
|
size = Vector3(1.5, 2.5, 1)
|
||||||
|
|
||||||
|
[sub_resource type="BoxShape3D" id="BoxShape3D_pm21f"]
|
||||||
|
size = Vector3(1.5, 2.5, 1)
|
||||||
|
|
||||||
[node name="World" type="Node3D"]
|
[node name="World" type="Node3D"]
|
||||||
|
|
||||||
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
|
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
|
||||||
@ -51,6 +74,7 @@ shadow_enabled = true
|
|||||||
|
|
||||||
[node name="CharacterBody3D" type="CharacterBody3D" parent="." node_paths=PackedStringArray("camera")]
|
[node name="CharacterBody3D" type="CharacterBody3D" parent="." node_paths=PackedStringArray("camera")]
|
||||||
transform = Transform3D(-0.658689, 0, 0.752415, 0, 1, 0, -0.752415, 0, -0.658689, 12.1193, 1.93814, -3.63533)
|
transform = Transform3D(-0.658689, 0, 0.752415, 0, 1, 0, -0.752415, 0, -0.658689, 12.1193, 1.93814, -3.63533)
|
||||||
|
collision_layer = 3
|
||||||
script = ExtResource("23_kpybi")
|
script = ExtResource("23_kpybi")
|
||||||
camera = NodePath("Camera3D")
|
camera = NodePath("Camera3D")
|
||||||
metadata/_edit_group_ = true
|
metadata/_edit_group_ = true
|
||||||
@ -116,11 +140,53 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 0, -3.2)
|
|||||||
[node name="Floor_WoodLight5" parent="House_Small" instance=ExtResource("6_jhx03")]
|
[node name="Floor_WoodLight5" parent="House_Small" instance=ExtResource("6_jhx03")]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 0, -1.2)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 0, -1.2)
|
||||||
|
|
||||||
[node name="DoorFrame_Round_WoodDark2" parent="House_Small" instance=ExtResource("7_o8fc1")]
|
[node name="PortalDoor" parent="House_Small" instance=ExtResource("10_q5onr")]
|
||||||
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 3.1, 0, -3.2)
|
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 3.1, 0, -3.2)
|
||||||
|
|
||||||
[node name="Door_8_Round2" parent="House_Small" instance=ExtResource("8_xo05s")]
|
[node name="Area3D" type="Area3D" parent="House_Small/PortalDoor"]
|
||||||
transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 3.1, 0, -3.7)
|
collision_layer = 0
|
||||||
|
collision_mask = 2
|
||||||
|
monitorable = false
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="House_Small/PortalDoor/Area3D"]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.05282, 0.739908)
|
||||||
|
shape = SubResource("BoxShape3D_q5onr")
|
||||||
|
|
||||||
|
[node name="PortalSmall" type="Node3D" parent="House_Small/PortalDoor" node_paths=PackedStringArray("exit_portal") groups=["portals"]]
|
||||||
|
process_priority = 100
|
||||||
|
process_physics_priority = 100
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.000417471, 1.08671, 0.0976808)
|
||||||
|
script = ExtResource("13_xo05s")
|
||||||
|
_portal_mesh_path = NodePath("Portal3D_Mesh")
|
||||||
|
_teleport_area_path = NodePath("TeleportArea")
|
||||||
|
_teleport_collider_path = NodePath("TeleportArea/Collider")
|
||||||
|
portal_size = Vector2(1.5, 2.5)
|
||||||
|
exit_portal = NodePath("../../../PortalSmall2")
|
||||||
|
portal_frame_width = 0.0
|
||||||
|
viewport_size_mode = 0
|
||||||
|
view_direction = 1
|
||||||
|
portal_render_layer = 524288
|
||||||
|
is_teleport = true
|
||||||
|
teleport_direction = 0
|
||||||
|
rigidbody_boost = 0.0
|
||||||
|
teleport_tolerance = 0.5
|
||||||
|
teleport_interactions = 3
|
||||||
|
teleport_collision_mask = 2
|
||||||
|
start_deactivated = false
|
||||||
|
metadata/_custom_type_script = "uid://cw1r4c1d7beyv"
|
||||||
|
metadata/_edit_group_ = true
|
||||||
|
|
||||||
|
[node name="Portal3D_Mesh" type="MeshInstance3D" parent="House_Small/PortalDoor/PortalSmall"]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 0.05, 0, 0, 0)
|
||||||
|
layers = 524288
|
||||||
|
material_override = ExtResource("14_dss4m")
|
||||||
|
cast_shadow = 0
|
||||||
|
mesh = SubResource("ArrayMesh_lakw3")
|
||||||
|
|
||||||
|
[node name="TeleportArea" type="Area3D" parent="House_Small/PortalDoor/PortalSmall"]
|
||||||
|
|
||||||
|
[node name="Collider" type="CollisionShape3D" parent="House_Small/PortalDoor/PortalSmall/TeleportArea"]
|
||||||
|
shape = SubResource("BoxShape3D_pm21f")
|
||||||
|
|
||||||
[node name="OmniLight3D" type="OmniLight3D" parent="House_Small"]
|
[node name="OmniLight3D" type="OmniLight3D" parent="House_Small"]
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.855677, 2.46514, -2.07212)
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.855677, 2.46514, -2.07212)
|
||||||
@ -136,5 +202,41 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.38419e-07, 0, 2.4)
|
|||||||
[node name="Roof_Front_Brick43" parent="House_Small/Roof_RoundTiles_4x42" instance=ExtResource("23_ctatt")]
|
[node name="Roof_Front_Brick43" parent="House_Small/Roof_RoundTiles_4x42" instance=ExtResource("23_ctatt")]
|
||||||
transform = Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, -4.76837e-07, 0, -2.1)
|
transform = Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, -4.76837e-07, 0, -2.1)
|
||||||
|
|
||||||
[node name="ReflectionProbe" type="ReflectionProbe" parent="."]
|
[node name="PortalSmall2" type="Node3D" parent="." node_paths=PackedStringArray("exit_portal") groups=["portals"]]
|
||||||
size = Vector3(50, 20, 50)
|
process_priority = 100
|
||||||
|
process_physics_priority = 100
|
||||||
|
transform = Transform3D(-0.866025, 0, -0.5, 0, 1, 0, 0.5, 0, -0.866025, 9.29768, 1.08671, 3.29958)
|
||||||
|
script = ExtResource("13_xo05s")
|
||||||
|
_portal_mesh_path = NodePath("Portal3D_Mesh")
|
||||||
|
_teleport_area_path = NodePath("TeleportArea")
|
||||||
|
_teleport_collider_path = NodePath("TeleportArea/Collider")
|
||||||
|
portal_size = Vector2(1.5, 2.5)
|
||||||
|
exit_portal = NodePath("../House_Small/PortalDoor/PortalSmall")
|
||||||
|
portal_frame_width = 0.0
|
||||||
|
viewport_size_mode = 0
|
||||||
|
view_direction = 1
|
||||||
|
portal_render_layer = 524288
|
||||||
|
is_teleport = true
|
||||||
|
teleport_direction = 0
|
||||||
|
rigidbody_boost = 0.0
|
||||||
|
teleport_tolerance = 0.5
|
||||||
|
teleport_interactions = 3
|
||||||
|
teleport_collision_mask = 2
|
||||||
|
start_deactivated = false
|
||||||
|
metadata/_custom_type_script = "uid://cw1r4c1d7beyv"
|
||||||
|
metadata/_edit_group_ = true
|
||||||
|
|
||||||
|
[node name="Portal3D_Mesh" type="MeshInstance3D" parent="PortalSmall2"]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 0.05, 0, 0, 0)
|
||||||
|
layers = 524288
|
||||||
|
material_override = ExtResource("14_dss4m")
|
||||||
|
cast_shadow = 0
|
||||||
|
mesh = SubResource("ArrayMesh_lakw3")
|
||||||
|
|
||||||
|
[node name="TeleportArea" type="Area3D" parent="PortalSmall2"]
|
||||||
|
|
||||||
|
[node name="Collider" type="CollisionShape3D" parent="PortalSmall2/TeleportArea"]
|
||||||
|
shape = SubResource("BoxShape3D_pm21f")
|
||||||
|
|
||||||
|
[connection signal="area_entered" from="House_Small/PortalDoor/Area3D" to="House_Small/PortalDoor" method="open"]
|
||||||
|
[connection signal="body_entered" from="House_Small/PortalDoor/Area3D" to="House_Small/PortalDoor" method="open"]
|
||||||
|
11
scripts/portal_door.gd
Normal file
11
scripts/portal_door.gd
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
class_name PortalDoor extends Node3D
|
||||||
|
|
||||||
|
|
||||||
|
@onready var animation_player: AnimationPlayer = $AnimationPlayer
|
||||||
|
|
||||||
|
var already_open: bool = false
|
||||||
|
|
||||||
|
func open(_body) -> void:
|
||||||
|
if not already_open:
|
||||||
|
animation_player.play("open")
|
||||||
|
already_open = true
|
1
scripts/portal_door.gd.uid
Normal file
1
scripts/portal_door.gd.uid
Normal file
@ -0,0 +1 @@
|
|||||||
|
uid://bvrb66r23luxo
|
Loading…
Reference in New Issue
Block a user