Diffstat (limited to 'input_handler.gd')
-rw-r--r--input_handler.gd44
1 files changed, 26 insertions, 18 deletions
diff --git a/input_handler.gd b/input_handler.gd
index ccd2d3b..8f4941a 100644
--- a/input_handler.gd
+++ b/input_handler.gd
@@ -1,23 +1,31 @@
extends CanvasLayer
-var pressed = false setget set_pressed
+var pressed = false
var nodes_with_points = []
+var current_color : Color
+var current_point = Vector2()
onready var line = $Line2D
+func _ready():
+ $to_mouse_line._setup(self, line)
func _pressed(event: InputEvent, node: dot):
if not GlobalVars.state == GlobalVars.states.player_turn:
return
+ if not event is InputEventMouse:
+ return
var node_center = node.dotcollisions.global_position
if (
line.get_point_count() > 0
- and node.color == line.default_color
+ and node.color == current_color
and not node in nodes_with_points
+ and node.global_position.distance_to(current_point) == 70
):
- print("points", line.get_point_count())
+ print(node.global_position.distance_to(current_point))
line.add_point(node_center)
+
nodes_with_points.append(node)
elif event.is_action("click") and event.is_pressed() and pressed == false: # on first click
pressed = true
@@ -25,26 +33,26 @@ func _pressed(event: InputEvent, node: dot):
nodes_with_points.clear()
nodes_with_points.append(node)
line.add_point(node_center)
- line.add_point(line.get_global_mouse_position())
line.default_color = node.color
+ current_color = node.color
func _physics_process(_delta):
if line.get_point_count() > 0:
- if Input.is_action_pressed("click") and pressed == true:
- move_last_point_to_mouse()
- else:
+ current_point = line.get_point_position(line.get_point_count() - 1)
+ if not Input.is_action_pressed("click"):
+ # clear up the entity tracker
+ if line.get_point_count() > 2:
+ for node in nodes_with_points:
+ for height in EntityTracker.rows:
+ var i = height.find(node) # look for node in rows
+ if i != -1:
+ height[i] = 0
+ node.queue_free()
+ break
+ Events.emit_signal("turn_over")
+ GlobalVars.state = GlobalVars.states.level_turn
+ GlobalVars.turns_used += 1
line.clear_points()
nodes_with_points.clear()
pressed = false
-
-
-func set_pressed(new_pressed):
- pressed = new_pressed
- set_physics_process(pressed)
-
-
-func move_last_point_to_mouse():
- # get_point count counts from one, remove point counts from 0
- line.remove_point(line.get_point_count() - 1)
- line.add_point(line.get_global_mouse_position())