34 lines
691 B
GDScript
34 lines
691 B
GDScript
@tool
|
|
class_name PickupItem
|
|
extends Node3D
|
|
|
|
var editor_child_scene:Node3D = null
|
|
|
|
@export var item:Item:
|
|
get:
|
|
return item
|
|
set(value):
|
|
if value != item:
|
|
item = value
|
|
|
|
if not Engine.is_editor_hint():
|
|
return
|
|
|
|
if editor_child_scene != null:
|
|
editor_child_scene.queue_free()
|
|
|
|
editor_child_scene = item.scene.instantiate()
|
|
add_child(editor_child_scene)
|
|
editor_child_scene.owner = self
|
|
|
|
# Called when the node enters the scene tree for the first time.
|
|
func _ready():
|
|
var item_scene = item.scene.instantiate()
|
|
add_child(item_scene)
|
|
|
|
|
|
func _on_area_3d_body_entered(body):
|
|
if body.has_method("on_item_picked_up"):
|
|
body.on_item_picked_up(item)
|
|
queue_free()
|