selected_item.gd 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. extends Node2D
  2. @onready var slots = $"../SlotArrays"
  3. var selected_item: Node = null
  4. func _input(event: InputEvent):
  5. if event.is_action_pressed("rmb"):
  6. if selected_item != null:
  7. remove_child(selected_item)
  8. selected_item = null
  9. slots.hide()
  10. func _ready():
  11. for slot_array in slots.get_children():
  12. for slot in slot_array.get_children():
  13. slot.connect("clicked", _on_slot_clicked)
  14. slots.hide()
  15. # Starting carrots
  16. selected_item = preload("res://scene/entity/carrot.tscn").instantiate()
  17. $"../Economy".add(30)
  18. _on_slot_clicked(slots.get_child(0).get_child(2))
  19. _on_slot_clicked(slots.get_child(0).get_child(3))
  20. _on_slot_clicked(slots.get_child(0).get_child(4))
  21. selected_item = null
  22. func _process(delta):
  23. if selected_item != null:
  24. selected_item.set_position(get_global_mouse_position())
  25. func _on_slot_clicked(slot: Slot):
  26. if selected_item != null:
  27. if slot.plant == null:
  28. if $"../Economy".add(-selected_item.cost):
  29. var dup = selected_item.duplicate()
  30. slot.set_plant(dup)
  31. dup.set_process(true)
  32. dup.dead = false
  33. $"../Plants".add_child(dup)
  34. if dup is Mandrake:
  35. $Coin.play()
  36. func set_item(item: Node):
  37. if selected_item != null and selected_item.get_class() == item.get_class():
  38. remove_child(selected_item)
  39. selected_item = null
  40. slots.hide()
  41. else:
  42. if selected_item != null:
  43. remove_child(selected_item)
  44. selected_item = item
  45. slots.show()
  46. add_child(selected_item)
  47. selected_item.set_process(false)
  48. selected_item.dead = true