30 lines
792 B
GDScript
30 lines
792 B
GDScript
extends Node2D
|
|
|
|
class_name Interaction
|
|
|
|
@export var disableAddingActions:bool = false
|
|
|
|
var IDs = []
|
|
var actionFunctions = []
|
|
|
|
func add_action(interactionName:String, action_function, availabilityCheck = null):
|
|
if disableAddingActions:
|
|
return
|
|
|
|
var actionMenu = get_parent().get_node("Interactable/ActionMenu")
|
|
|
|
var newID = actionMenu.add_action(interactionName)
|
|
actionMenu.action_selected.connect(action_chosen)
|
|
|
|
IDs.append(newID)
|
|
actionFunctions.append(action_function)
|
|
|
|
if availabilityCheck != null:
|
|
actionMenu.add_availability_check(newID, availabilityCheck)
|
|
|
|
func action_chosen(ID:int):
|
|
for i in range(0, IDs.size()):
|
|
if IDs[i] == ID:
|
|
var cow = get_tree().get_root().get_node("MainGame/Cow")
|
|
cow.interact(self, actionFunctions[i], $InteractionArea.global_position)
|