adding stage handling to card

This commit is contained in:
betalars 2023-07-11 23:13:04 +02:00
parent 1d8d0f76ec
commit 1060f7815f
1 changed files with 22 additions and 18 deletions

View File

@ -10,6 +10,8 @@ var noise: Noise = FastNoiseLite.new()
var wiggle_tween var wiggle_tween
var scale_tween var scale_tween
var on_stage = false
@export var text: String = "" : @export var text: String = "" :
set (value): set (value):
text = value text = value
@ -80,11 +82,11 @@ func _ready():
_handle_wiggle(0) _handle_wiggle(0)
func _process(delta: float) -> void: func _process(delta: float) -> void:
if self.on_stage:
if highlighted: if highlighted:
_handle_wiggle(delta) _handle_wiggle(delta)
_move_card() _move_card()
func _handle_wiggle(delta): func _handle_wiggle(delta):
wiggle_pos += delta * wiggle_speed * wiggle_intensity wiggle_pos += delta * wiggle_speed * wiggle_intensity
@ -104,23 +106,25 @@ func _on_focus_exited():
print(self, "is not focused") print(self, "is not focused")
func _on_mouse_entered(): func _on_mouse_entered():
if not Input.is_action_pressed("mouse_left"): if self.on_stage:
highlighted = true if not Input.is_action_pressed("mouse_left"):
if "handle_hover" in owner: highlighted = true
owner.handle_hover(self) if "handle_hover" in owner:
owner.handle_hover(self)
func _on_mouse_exited(): func _on_mouse_exited():
highlighted = false if self.on_stage:
highlighted = false
func _on_input_event(viewport, event, shape_idx): func _on_input_event(viewport, event, shape_idx):
if self.on_stage:
if event is InputEventMouseMotion: if event is InputEventMouseMotion:
_move_card() _move_card()
if event is InputEventMouseButton: if event is InputEventMouseButton:
if event.button_index == MOUSE_BUTTON_LEFT: if event.button_index == MOUSE_BUTTON_LEFT:
if is_dragable and "handle_mouse_button" in owner: if is_dragable and "handle_mouse_button" in owner:
owner.handle_mouse_button(self, event) owner.handle_mouse_button(self, event)
func _move_card(): func _move_card():
if is_dragged: if is_dragged: