Cow_Life_Sim_RPG/Interactions/Interactable/Interaction.gd

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)