hover fix
This commit is contained in:
@@ -3,16 +3,18 @@ class_name ItemObject
|
||||
|
||||
const ITEM_AREA_WIDTH = 20
|
||||
const ITEM_SPRITE_SIZE = 40.
|
||||
const SPRITE_SCENE : PackedScene = preload("res://entities/interactables/item_object/item_object_sprite.tscn")
|
||||
const SPRITE_SCENE: PackedScene = preload("res://entities/interactables/item_object/item_object_sprite.tscn")
|
||||
|
||||
@export var item : Item :
|
||||
@export var item: Item:
|
||||
set(_item):
|
||||
item = _item
|
||||
if object_sprite:
|
||||
object_sprite.apply_texture_to_sprite(item.icon, ITEM_SPRITE_SIZE)
|
||||
object_sprite.generate_particles(item.get_particles())
|
||||
|
||||
@onready var object_sprite : ItemObjectSprite = generate_sprite()
|
||||
@onready var object_sprite: ItemObjectSprite = generate_sprite()
|
||||
|
||||
var dragging := false
|
||||
|
||||
func _init(_item = null):
|
||||
if _item:
|
||||
@@ -24,6 +26,15 @@ func _ready():
|
||||
object_sprite.apply_texture_to_sprite(item.icon, ITEM_SPRITE_SIZE)
|
||||
object_sprite.generate_particles(item.get_particles())
|
||||
|
||||
func _process(_delta):
|
||||
if dragging:
|
||||
global_position = get_global_mouse_position()
|
||||
|
||||
func _on_mouse_entered():
|
||||
mouse_over = true
|
||||
if not dragging:
|
||||
Pointer.inspect(self)
|
||||
|
||||
func pointer_text() -> String:
|
||||
var name_suffix = ""
|
||||
|
||||
@@ -42,21 +53,27 @@ func card_info() -> CardInfo:
|
||||
|
||||
func interact(player : Player) -> bool:
|
||||
if player.can_pick_item(item):
|
||||
await pickup_animation(player)
|
||||
await pickup_animation(player.global_position)
|
||||
queue_free()
|
||||
player.pick_item(item)
|
||||
return true
|
||||
|
||||
return false
|
||||
|
||||
func pickup_animation(player : Player):
|
||||
func start_dragging():
|
||||
dragging = true
|
||||
|
||||
func stop_dragging():
|
||||
dragging = false
|
||||
|
||||
func pickup_animation(target_position: Vector2):
|
||||
available = false
|
||||
var tween : Tween = get_tree().create_tween()
|
||||
var tween: Tween = get_tree().create_tween()
|
||||
|
||||
if object_sprite:
|
||||
object_sprite.pickup_animation()
|
||||
await tween.tween_property(self, "position", player.position, 0.2).finished
|
||||
Pointer.stop_inspect(self)
|
||||
await tween.tween_property(self , "global_position", target_position, 0.2).finished
|
||||
Pointer.stop_inspect(self )
|
||||
|
||||
func generate_sprite() -> ItemObjectSprite:
|
||||
var sprite_node = SPRITE_SCENE.instantiate() as ItemObjectSprite
|
||||
@@ -71,4 +88,4 @@ func generate_sprite() -> ItemObjectSprite:
|
||||
return sprite_node
|
||||
|
||||
func save() -> EntityData:
|
||||
return ItemObjectData.new(self)
|
||||
return ItemObjectData.new(self )
|
||||
|
||||
Reference in New Issue
Block a user