extends Interactable class_name ItemObject const ITEM_AREA_WIDTH = 10 const SPRITE_SCENE : PackedScene = preload("res://entities/interactables/item_object/item_object_sprite.tscn") @export var item : Item : set(_item): item = _item if sprite: sprite.texture = item.icon @onready var sprite : Sprite2D = generate_sprite() func _init(_item = null): if _item: item = _item func _ready(): generate_collision(10) func interact(player : Player) -> bool: if player.inventory.lenght() < player.inventory.max_items: player.inventory.add_item(item) pickup_animation(player) else : var swaped_item = player.inventory.swap_items(item) item = swaped_item return true func pickup_animation(player : Player): available = false var tween : Tween = get_tree().create_tween() tween.tween_property(self, "position", player.position, 0.2) tween.tween_callback( func(): queue_free() ) func generate_sprite() -> Sprite2D: var s = SPRITE_SCENE.instantiate() as Sprite2D add_child(s) s.texture = item.icon return s