Pickupable item
This commit is contained in:
@@ -11,3 +11,5 @@ visible = false
|
||||
|
||||
[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)
|
||||
|
||||
[node name="GrabFixPoint" type="Node3D" parent="Head" index="4"]
|
||||
|
||||
@@ -64,6 +64,25 @@ interact={
|
||||
"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)
|
||||
]
|
||||
}
|
||||
wheel_up={
|
||||
"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(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":4,"canceled":false,"pressed":false,"double_click":false,"script":null)
|
||||
]
|
||||
}
|
||||
wheel_down={
|
||||
"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(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":5,"canceled":false,"pressed":false,"double_click":false,"script":null)
|
||||
]
|
||||
}
|
||||
grab={
|
||||
"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":82,"key_label":0,"unicode":114,"location":0,"echo":false,"script":null)
|
||||
]
|
||||
}
|
||||
|
||||
[physics]
|
||||
|
||||
3d/physics_engine="Jolt Physics"
|
||||
|
||||
[rendering]
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[gd_scene load_steps=28 format=3 uid="uid://gq33ysuit61b"]
|
||||
[gd_scene load_steps=31 format=3 uid="uid://gq33ysuit61b"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://o17v5m75ew03" path="res://scenes/custom_render.gd" id="1_gcpng"]
|
||||
[ext_resource type="PackedScene" uid="uid://c70o7nk6wxcmx" path="res://models/UndertakerBlockout.fbx" id="2_gfayn"]
|
||||
@@ -10,6 +10,7 @@
|
||||
[ext_resource type="Script" uid="uid://bmxu5xdxlq0e6" path="res://scenes/flickering_oven_light.gd" id="7_sve1f"]
|
||||
[ext_resource type="VoxelGIData" uid="uid://bfwtxdvx4w12w" path="res://scenes/blockout_room.VoxelGI_data.res" id="8_dp7jk"]
|
||||
[ext_resource type="Shader" uid="uid://bf2nxtrto5u5r" path="res://scenes/main_render.gdshader" id="9_k5i88"]
|
||||
[ext_resource type="Script" uid="uid://bgrc6ktuxyrm6" path="res://scenes/pickupable.gd" id="10_5747v"]
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_gfayn"]
|
||||
size = Vector3(12.2438965, 0.48779297, 13.901489)
|
||||
@@ -92,8 +93,12 @@ glow_intensity = 1.43
|
||||
glow_strength = 1.04
|
||||
glow_bloom = 0.16
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_5747v"]
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_mu0to"]
|
||||
|
||||
[sub_resource type="Curve" id="Curve_gcpng"]
|
||||
_data = [Vector2(0, 0), 0.0, 0.0, 0, 0, Vector2(0.26234567, 0.14241672), 0.0, 0.0, 0, 0, Vector2(0.5092592, 0.3427866), 0.0, 0.0, 0, 0, Vector2(0.79320985, 0.6313193), 0.0, 0.0, 0, 0, Vector2(0.87962955, 0.96794075), 0.0, 0.0, 0, 0, Vector2(1, 1), 0.063336894, 0.0, 0, 0]
|
||||
_data = [Vector2(0, 0), 0.0, 0.0, 0, 0, Vector2(0.26234567, 0.14241672), 0.0, 0.0, 0, 0, Vector2(0.5092592, 0.3427866), 0.0, 0.0, 0, 0, Vector2(0.7561728, 0.6233045), 0.0, 0.0, 0, 0, Vector2(0.8641975, 0.97595555), 0.0, 0.0, 0, 0, Vector2(1, 1), 0.063336894, 0.0, 0, 0]
|
||||
point_count = 6
|
||||
|
||||
[sub_resource type="CurveTexture" id="CurveTexture_5747v"]
|
||||
@@ -175,6 +180,9 @@ script = ExtResource("4_ui586")
|
||||
|
||||
[node name="Character" parent="SubViewportContainer/SubViewport" instance=ExtResource("4_tedjo")]
|
||||
|
||||
[node name="GrabFixPoint" parent="SubViewportContainer/SubViewport/Character/Head" index="4"]
|
||||
transform = Transform3D(-0.9766723, 0, -0.21473524, 0, 1, 0, 0.21473524, 0, -0.9766723, 0, 0, 0)
|
||||
|
||||
[node name="Lever" parent="SubViewportContainer/SubViewport" 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)
|
||||
|
||||
@@ -290,6 +298,26 @@ environment = SubResource("Environment_dp7jk")
|
||||
transform = Transform3D(0.5765749, 0.8170443, 0, -0.8170443, 0.5765749, 0, 0, 0, 1, -2.4286354, 2.0967534, -0.82138157)
|
||||
light_energy = 0.05
|
||||
|
||||
[node name="PhysBox" type="RigidBody3D" parent="SubViewportContainer/SubViewport"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.3421727, 0.88496697, 0)
|
||||
freeze_mode = 1
|
||||
script = ExtResource("10_5747v")
|
||||
|
||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="SubViewportContainer/SubViewport/PhysBox"]
|
||||
mesh = SubResource("BoxMesh_5747v")
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="SubViewportContainer/SubViewport/PhysBox"]
|
||||
shape = SubResource("BoxShape3D_mu0to")
|
||||
|
||||
[node name="PhysBox2" type="RigidBody3D" parent="SubViewportContainer/SubViewport"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.3421727, 1.967477, 0)
|
||||
|
||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="SubViewportContainer/SubViewport/PhysBox2"]
|
||||
mesh = SubResource("BoxMesh_5747v")
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="SubViewportContainer/SubViewport/PhysBox2"]
|
||||
shape = SubResource("BoxShape3D_mu0to")
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="."]
|
||||
material = SubResource("ShaderMaterial_gcpng")
|
||||
anchors_preset = 15
|
||||
@@ -302,3 +330,5 @@ texture = SubResource("ViewportTexture_dp7jk")
|
||||
|
||||
[connection signal="on_hit" from="SubViewportContainer/SubViewport/Interactable" to="SubViewportContainer/SubViewport/DebugPrinter" method="_on_interactable_on_hit"]
|
||||
[connection signal="changed" from="SubViewportContainer/SubViewport/Lever" to="SubViewportContainer/SubViewport/LidCrane" method="set_grab"]
|
||||
|
||||
[editable path="SubViewportContainer/SubViewport/Character"]
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
extends RigidBody3D
|
||||
|
||||
@onready var grab_fix_point: Node3D = $"../Character/Head/GrabFixPoint"
|
||||
|
||||
var grabbed: bool = false
|
||||
|
||||
var rotate_todo:float = 0
|
||||
|
||||
func _input(event: InputEvent) -> void:
|
||||
if event.is_action_pressed("wheel_up"):
|
||||
rotate_todo += 30
|
||||
if event.is_action_pressed("wheel_down"):
|
||||
rotate_todo -= 30
|
||||
|
||||
if event.is_action_pressed("grab"):
|
||||
grabbed = !grabbed
|
||||
print("grab: %s"%grabbed)
|
||||
if grabbed:
|
||||
grab_fix_point.global_position = global_position
|
||||
freeze = true
|
||||
else:
|
||||
freeze = false
|
||||
|
||||
|
||||
func self_rotate(amount_deg:float):
|
||||
var axis = Plane(Vector3.UP).project(-grab_fix_point.global_transform.basis.z).normalized()
|
||||
var amount_rad =deg_to_rad(amount_deg)
|
||||
print("Rotating around %s by %s deg or %s rad"%[axis,amount_deg,amount_rad])
|
||||
rotate(axis,amount_rad)
|
||||
print("New rotation: %s"%rotation_degrees)
|
||||
|
||||
|
||||
func _physics_process(_delta: float) -> void:
|
||||
|
||||
|
||||
if grabbed:
|
||||
self_rotate(rotate_todo)
|
||||
rotate_todo = 0
|
||||
#var axis = Plane(Vector3.UP).project(-grab_fix_point.global_transform.basis.z).normalized()
|
||||
#rotate(axis,_delta*3.14)
|
||||
global_position = grab_fix_point.global_position
|
||||
@@ -0,0 +1 @@
|
||||
uid://bgrc6ktuxyrm6
|
||||
Reference in New Issue
Block a user