fix metal plate pickup

This commit is contained in:
2026-04-23 13:08:44 +03:00
parent e956c4353c
commit 9981ed1ae3
3 changed files with 52 additions and 13 deletions
+17 -13
View File
@@ -5,6 +5,7 @@
[ext_resource type="Texture2D" uid="uid://bjfuko7rdmax" path="res://assets/stone_big.png" id="3_klq6b"] [ext_resource type="Texture2D" uid="uid://bjfuko7rdmax" path="res://assets/stone_big.png" id="3_klq6b"]
[ext_resource type="ArrayMesh" uid="uid://b5do7gjnxif80" path="res://assets/stonewall_long.obj" id="4_b121j"] [ext_resource type="ArrayMesh" uid="uid://b5do7gjnxif80" path="res://assets/stonewall_long.obj" id="4_b121j"]
[ext_resource type="ArrayMesh" uid="uid://ul1cypdhef5a" path="res://assets/stone_big.obj" id="5_8c41q"] [ext_resource type="ArrayMesh" uid="uid://ul1cypdhef5a" path="res://assets/stone_big.obj" id="5_8c41q"]
[ext_resource type="PackedScene" uid="uid://g7iron5etp8u" path="res://scenes/Iron.tscn" id="6_dke22"]
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_ppgk2"] [sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_ppgk2"]
@@ -78,21 +79,21 @@ size = Vector3(0.6, 1, 0.6)
[sub_resource type="BoxShape3D" id="BoxShape3D_forge"] [sub_resource type="BoxShape3D" id="BoxShape3D_forge"]
size = Vector3(2, 1.8, 2) size = Vector3(2, 1.8, 2)
[sub_resource type="BoxMesh" id="BoxMesh_etable"]
size = Vector3(1.4, 0.9, 1.4)
[sub_resource type="BoxMesh" id="BoxMesh_ebook"]
size = Vector3(0.7, 0.12, 0.5)
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_etable"] [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_etable"]
albedo_color = Color(0.12, 0.08, 0.22, 1) albedo_color = Color(0.12, 0.08, 0.22, 1)
roughness = 0.6
metallic = 0.2 metallic = 0.2
roughness = 0.6
[sub_resource type="BoxMesh" id="BoxMesh_etable"]
size = Vector3(1.4, 0.9, 1.4)
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ebook"] [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ebook"]
albedo_color = Color(0.55, 0.08, 0.08, 1) albedo_color = Color(0.55, 0.08, 0.08, 1)
roughness = 0.9 roughness = 0.9
[sub_resource type="BoxMesh" id="BoxMesh_ebook"]
size = Vector3(0.7, 0.12, 0.5)
[sub_resource type="BoxShape3D" id="BoxShape3D_etable"] [sub_resource type="BoxShape3D" id="BoxShape3D_etable"]
size = Vector3(1.4, 0.9, 1.4) size = Vector3(1.4, 0.9, 1.4)
@@ -261,18 +262,21 @@ mesh = SubResource("BoxMesh_chimney")
[node name="CollisionShape3D" type="CollisionShape3D" parent="Forge" unique_id=726531191] [node name="CollisionShape3D" type="CollisionShape3D" parent="Forge" unique_id=726531191]
shape = SubResource("BoxShape3D_forge") shape = SubResource("BoxShape3D_forge")
[node name="EnchantingTable" type="StaticBody3D" parent="."] [node name="EnchantingTable" type="StaticBody3D" parent="." unique_id=242813005]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8, 0.45, -8) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8, 0.45, -8)
metadata/is_enchanting_table = true metadata/is_enchanting_table = true
[node name="TableMesh" type="MeshInstance3D" parent="EnchantingTable"] [node name="TableMesh" type="MeshInstance3D" parent="EnchantingTable" unique_id=1719378953]
mesh = SubResource("BoxMesh_etable")
material_override = SubResource("StandardMaterial3D_etable") material_override = SubResource("StandardMaterial3D_etable")
mesh = SubResource("BoxMesh_etable")
[node name="BookMesh" type="MeshInstance3D" parent="EnchantingTable"] [node name="BookMesh" type="MeshInstance3D" parent="EnchantingTable" unique_id=444214832]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.51, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.51, 0)
mesh = SubResource("BoxMesh_ebook")
material_override = SubResource("StandardMaterial3D_ebook") material_override = SubResource("StandardMaterial3D_ebook")
mesh = SubResource("BoxMesh_ebook")
[node name="CollisionShape3D" type="CollisionShape3D" parent="EnchantingTable"] [node name="CollisionShape3D" type="CollisionShape3D" parent="EnchantingTable" unique_id=352273224]
shape = SubResource("BoxShape3D_etable") shape = SubResource("BoxShape3D_etable")
[node name="Iron" parent="." unique_id=611454609 instance=ExtResource("6_dke22")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.4976616, 0.104292765, -5.8715014)
+7
View File
@@ -25,3 +25,10 @@ mesh = SubResource("BoxMesh_1")
[node name="CollisionShape3D" type="CollisionShape3D" parent="." unique_id=1642999883] [node name="CollisionShape3D" type="CollisionShape3D" parent="." unique_id=1642999883]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.005560264, 0.16739155, 0.003918484) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.005560264, 0.16739155, 0.003918484)
shape = SubResource("BoxShape3D_1") shape = SubResource("BoxShape3D_1")
[node name="Tooltip" type="Label3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.1, 0)
billboard = 1
text = "[E] Metal Plate
+1 Kick Tier"
outline_size = 6
+28
View File
@@ -19,6 +19,7 @@ var dead: bool = false
var damage_modifier: float = 1.2 var damage_modifier: float = 1.2
@onready var mesh_node: MeshInstance3D = $PlateMesh @onready var mesh_node: MeshInstance3D = $PlateMesh
@onready var tooltip: Label3D = $Tooltip
var plate_mat: StandardMaterial3D var plate_mat: StandardMaterial3D
const COLOR_IDLE := Color(0.6, 0.65, 0.72) const COLOR_IDLE := Color(0.6, 0.65, 0.72)
@@ -26,8 +27,35 @@ const COLOR_IMPACT := Color(1.0, 1.0, 1.0)
func _ready() -> void: func _ready() -> void:
add_to_group("kickable") add_to_group("kickable")
add_to_group("interactable")
plate_mat = mesh_node.material_override.duplicate() as StandardMaterial3D plate_mat = mesh_node.material_override.duplicate() as StandardMaterial3D
mesh_node.material_override = plate_mat mesh_node.material_override = plate_mat
tooltip.visible = false
func _process(_delta: float) -> void:
if dead:
tooltip.visible = false
return
var players := get_tree().get_nodes_in_group("player")
if players.is_empty():
tooltip.visible = false
return
var p := players[0] as Node3D
tooltip.visible = p != null and global_position.distance_to(p.global_position) < 2.5
func interact(player: Node) -> void:
if dead:
return
player.call("apply_upgrade_armor")
dead = true
set_physics_process(false)
tooltip.visible = false
remove_from_group("interactable")
remove_from_group("kickable")
var tw := create_tween()
tw.tween_property(self, "scale", Vector3(1.4, 0.1, 1.4), 0.15)
tw.tween_property(self, "scale", Vector3(0.0, 0.0, 0.0), 0.1)
tw.tween_callback(queue_free)
func apply_collision_damage(dmg: float) -> void: func apply_collision_damage(dmg: float) -> void:
_take_damage(dmg) _take_damage(dmg)