#13 suite du developpement d'inventaire avec le rajout des ItemObjects, description sur le GUI, items d'exemple et corrections mineures
This commit was merged in pull request #35.
This commit is contained in:
48
entities/interactables/item_object/script/item_object.gd
Normal file
48
entities/interactables/item_object/script/item_object.gd
Normal file
@@ -0,0 +1,48 @@
|
||||
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
|
||||
Reference in New Issue
Block a user