Compare commits
4 Commits
68e86405c9
...
13554726bb
| Author | SHA1 | Date | |
|---|---|---|---|
| 13554726bb | |||
| f61c2346f6 | |||
| e8559b7993 | |||
| 6a5494a3de |
@@ -0,0 +1,7 @@
|
||||
extends Node
|
||||
class_name Interactable
|
||||
|
||||
signal on_hit
|
||||
|
||||
func hit()->void:
|
||||
on_hit.emit()
|
||||
@@ -0,0 +1 @@
|
||||
uid://d1pa8ssvmxbn
|
||||
@@ -0,0 +1,6 @@
|
||||
[gd_scene load_steps=2 format=3 uid="uid://be7u1kn41g2ww"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://d1pa8ssvmxbn" path="res://addons/interaction/interactable.gd" id="1_8h68r"]
|
||||
|
||||
[node name="Interactable" type="Area3D"]
|
||||
script = ExtResource("1_8h68r")
|
||||
@@ -0,0 +1,17 @@
|
||||
extends Node3D
|
||||
@onready var ray_cast: RayCast3D = $RayCast3D
|
||||
|
||||
const Interactable = preload("uid://d1pa8ssvmxbn")
|
||||
|
||||
@export var max_distance: float = 100
|
||||
|
||||
func _ready() -> void:
|
||||
ray_cast.target_position = Vector3(0,0,-max_distance)
|
||||
|
||||
func _input(event: InputEvent) -> void:
|
||||
if event.is_action_pressed("interact"):
|
||||
if ray_cast.is_colliding():
|
||||
var collider = ray_cast.get_collider()
|
||||
if collider.get_script() == Interactable:
|
||||
var interactable: Interactable = collider
|
||||
interactable.hit()
|
||||
@@ -0,0 +1 @@
|
||||
uid://cqf6w5rp1hjcs
|
||||
@@ -0,0 +1,10 @@
|
||||
[gd_scene load_steps=2 format=3 uid="uid://dlryddjharg35"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://cqf6w5rp1hjcs" path="res://addons/interaction/interaction_ray.gd" id="1_jlrgf"]
|
||||
|
||||
[node name="InteractionRay" type="Node3D"]
|
||||
script = ExtResource("1_jlrgf")
|
||||
|
||||
[node name="RayCast3D" type="RayCast3D" parent="."]
|
||||
target_position = Vector3(0, 0, -1)
|
||||
collide_with_areas = true
|
||||
@@ -0,0 +1,9 @@
|
||||
[gd_scene load_steps=3 format=3 uid="uid://bxuveo0hlwy33"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://cc1m2a1obsyn4" path="res://addons/fpc/character.tscn" id="1_cs6s8"]
|
||||
[ext_resource type="PackedScene" uid="uid://dlryddjharg35" path="res://addons/interaction/interaction_ray.tscn" id="2_xofgc"]
|
||||
|
||||
[node name="Character" instance=ExtResource("1_cs6s8")]
|
||||
|
||||
[node name="InteractionRay" parent="Head" index="3" instance=ExtResource("2_xofgc")]
|
||||
transform = Transform3D(1.2, 0, 0, 0, 1.2, 0, 0, 0, 1.2, 0, 0, 0)
|
||||
@@ -0,0 +1,22 @@
|
||||
extends Node3D
|
||||
|
||||
@export var isUp:bool = true
|
||||
@export var upPosition:float = 45
|
||||
@export var downPosition:float = -45
|
||||
|
||||
@onready var visual_lever: Node3D = $Visuals/VisualLever
|
||||
|
||||
var lever_tween: Tween = null
|
||||
|
||||
signal changed(isUp: bool)
|
||||
|
||||
func _on_interactable_on_hit() -> void:
|
||||
isUp = !isUp
|
||||
changed.emit(isUp)
|
||||
|
||||
if lever_tween != null:
|
||||
lever_tween.kill()
|
||||
|
||||
lever_tween = get_tree().create_tween()
|
||||
lever_tween.tween_property(visual_lever, "rotation_degrees:x", upPosition if isUp else downPosition, 0.5).set_ease(Tween.EASE_OUT).set_trans(Tween.TRANS_CUBIC)
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
uid://de5n8vxvigaic
|
||||
@@ -0,0 +1,40 @@
|
||||
[gd_scene load_steps=6 format=3 uid="uid://cv3qpo5lfrchn"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://de5n8vxvigaic" path="res://prefabs/lever.gd" id="1_7d20a"]
|
||||
[ext_resource type="PackedScene" uid="uid://be7u1kn41g2ww" path="res://addons/interaction/interactable.tscn" id="1_h71ec"]
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_h71ec"]
|
||||
size = Vector3(1, 1, 0.2)
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_ib36p"]
|
||||
size = Vector3(0.405, 0.61, 0.09)
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_haun4"]
|
||||
size = Vector3(0.1, 0.1, 0.5)
|
||||
|
||||
[node name="Lever" type="Node3D"]
|
||||
script = ExtResource("1_7d20a")
|
||||
upPosition = -45.0
|
||||
downPosition = 45.0
|
||||
|
||||
[node name="Interactable" parent="." instance=ExtResource("1_h71ec")]
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="Interactable"]
|
||||
shape = SubResource("BoxShape3D_h71ec")
|
||||
|
||||
[node name="Visuals" type="Node3D" parent="."]
|
||||
|
||||
[node name="VisualBase" type="Node3D" parent="Visuals"]
|
||||
|
||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="Visuals/VisualBase"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.029395461)
|
||||
mesh = SubResource("BoxMesh_ib36p")
|
||||
|
||||
[node name="VisualLever" type="Node3D" parent="Visuals"]
|
||||
transform = Transform3D(1, 0, 0, 0, 0.70710677, 0.70710677, 0, -0.70710677, 0.70710677, 0, 0, 0.04011269)
|
||||
|
||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="Visuals/VisualLever"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.00422913, 0.22320583)
|
||||
mesh = SubResource("BoxMesh_haun4")
|
||||
|
||||
[connection signal="on_hit" from="Interactable" to="." method="_on_interactable_on_hit"]
|
||||
@@ -0,0 +1,6 @@
|
||||
[gd_scene load_steps=2 format=3 uid="uid://cx052x8qp7oj2"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://dfq2ylgyk830w" path="res://src/lid_crane.gd" id="1_yudba"]
|
||||
|
||||
[node name="LidCrane" type="Node3D"]
|
||||
script = ExtResource("1_yudba")
|
||||
@@ -18,6 +18,10 @@ config/features=PackedStringArray("4.5", "Forward Plus")
|
||||
|
||||
project/assembly_name="Undertaker Simulator"
|
||||
|
||||
[editor_plugins]
|
||||
|
||||
enabled=PackedStringArray()
|
||||
|
||||
[input]
|
||||
|
||||
left={
|
||||
@@ -55,6 +59,11 @@ sprint={
|
||||
"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":4194325,"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)
|
||||
]
|
||||
}
|
||||
|
||||
[rendering]
|
||||
|
||||
|
||||
@@ -1,17 +1,19 @@
|
||||
[gd_scene load_steps=4 format=3 uid="uid://gq33ysuit61b"]
|
||||
[gd_scene load_steps=9 format=3 uid="uid://gq33ysuit61b"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://cc1m2a1obsyn4" path="res://addons/fpc/character.tscn" id="1_grf6e"]
|
||||
[ext_resource type="PackedScene" uid="uid://c70o7nk6wxcmx" path="res://models/UndertakerBlockout.fbx" id="2_gfayn"]
|
||||
[ext_resource type="PackedScene" uid="uid://be7u1kn41g2ww" path="res://addons/interaction/interactable.tscn" id="3_u0nvw"]
|
||||
[ext_resource type="PackedScene" uid="uid://bxuveo0hlwy33" path="res://prefabs/character.tscn" id="4_tedjo"]
|
||||
[ext_resource type="Script" uid="uid://b1pyctfbd0wvg" path="res://scenes/debug_printer.gd" id="4_ui586"]
|
||||
[ext_resource type="PackedScene" uid="uid://cv3qpo5lfrchn" path="res://prefabs/lever.tscn" id="5_tedjo"]
|
||||
[ext_resource type="PackedScene" uid="uid://cx052x8qp7oj2" path="res://prefabs/lid_crane.tscn" id="6_oslft"]
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_gfayn"]
|
||||
size = Vector3(12.2438965, 0.48779297, 13.901489)
|
||||
|
||||
[node name="BlockoutRoom" type="Node3D"]
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_ui586"]
|
||||
size = Vector3(0.24987793, 1, 1)
|
||||
|
||||
[node name="Character" parent="." instance=ExtResource("1_grf6e")]
|
||||
transform = Transform3D(1.2, 0, 0, 0, 1.2, 0, 0, 0, 1.2, 1.96156, 0.12873119, -1.2073363)
|
||||
base_speed = 2.0
|
||||
acceleration = 5.0
|
||||
[node name="BlockoutRoom" type="Node3D"]
|
||||
|
||||
[node name="UndertakerBlockout" parent="." instance=ExtResource("2_gfayn")]
|
||||
|
||||
@@ -26,3 +28,23 @@ transform = Transform3D(0.7260458, 0.59701693, -0.34121642, 0.64276195, -0.41287
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="StaticBody3D"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.1646729, -0.25610352, 1.5601196)
|
||||
shape = SubResource("BoxShape3D_gfayn")
|
||||
|
||||
[node name="Interactable" parent="." instance=ExtResource("3_u0nvw")]
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="Interactable"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.1487448, 1.3621653, -0.7917821)
|
||||
shape = SubResource("BoxShape3D_ui586")
|
||||
|
||||
[node name="DebugPrinter" type="Node" parent="."]
|
||||
script = ExtResource("4_ui586")
|
||||
|
||||
[node name="Character" parent="." instance=ExtResource("4_tedjo")]
|
||||
|
||||
[node name="Lever" parent="." instance=ExtResource("5_tedjo")]
|
||||
transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, 1.884376, 1.4100053, 4.976951)
|
||||
|
||||
[node name="LidCrane" parent="." instance=ExtResource("6_oslft")]
|
||||
transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, 0, 0, 5.0008087)
|
||||
|
||||
[connection signal="on_hit" from="Interactable" to="DebugPrinter" method="_on_interactable_on_hit"]
|
||||
[connection signal="changed" from="Lever" to="LidCrane" method="set_grab"]
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
extends Node
|
||||
|
||||
|
||||
func _on_interactable_on_hit() -> void:
|
||||
print("I was hit")
|
||||
@@ -0,0 +1 @@
|
||||
uid://b1pyctfbd0wvg
|
||||
@@ -0,0 +1,4 @@
|
||||
extends Node3D
|
||||
|
||||
func set_grab(grab:bool):
|
||||
print("setgrab: %s"%grab)
|
||||
@@ -0,0 +1 @@
|
||||
uid://dfq2ylgyk830w
|
||||
Reference in New Issue
Block a user