root/CustomInputEvents/InputEventMultiScreenDrag.gd

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
class_name InputEventMultiScreenDrag
extends InputEventAction

var position
var relative
var speed

func _init(dict):
	if dict.has("position"):
		self.position = dict["position"] 
		self.relative = dict["relative"] 
		self.speed    = dict["speed"] 
	else:
		self.position = get_events_property_avg(dict,"position")
		self.relative = get_events_property_avg(dict,"relative") / dict.size()
		self.speed    = get_events_property_avg(dict,"speed")


func as_text():
	return "InputEventMultiScreenDrag : position=" + str(position) + ", relative=" + str(relative) + ", speed=" + str(speed)


# Aux.
func get_events_property_avg(events, property):
	var sum = Vector2()
	for e in events.values():
		sum += e.get(property)
	return sum / events.size()