1-
21extends Navigation
32
4- # Member variables
53const SPEED = 4.0
64
75var camrot = 0.0
@@ -13,11 +11,17 @@ var m = SpatialMaterial.new()
1311var path = []
1412var draw_path = true
1513
14+ func _ready ():
15+ set_process_input (true )
16+ m .flags_unshaded = true
17+ m .flags_use_point_size = true
18+ m .albedo_color = Color .white
19+
1620
1721func _process (delta ):
1822 if path .size () > 1 :
1923 var to_walk = delta * SPEED
20- var to_watch = Vector3 ( 0 , 1 , 0 )
24+ var to_watch = Vector3 . UP
2125 while to_walk > 0 and path .size () >= 2 :
2226 var pfrom = path [path .size () - 1 ]
2327 var pto = path [path .size () - 2 ]
@@ -27,7 +31,7 @@ func _process(delta):
2731 path .remove (path .size () - 1 )
2832 to_walk -= d
2933 else :
30- path [path .size () - 1 ] = pfrom .linear_interpolate (pto , to_walk / d )
34+ path [path .size () - 1 ] = pfrom .linear_interpolate (pto , to_walk / d )
3135 to_walk = 0
3236
3337 var atpos = path [path .size () - 1 ]
@@ -36,8 +40,8 @@ func _process(delta):
3640
3741 var t = Transform ()
3842 t .origin = atpos
39- t = t .looking_at (atpos + atdir , Vector3 ( 0 , 1 , 0 ) )
40- get_node ("robot_base " ).set_transform (t )
43+ t = t .looking_at (atpos + atdir , Vector3 . UP )
44+ get_node ("RobotBase " ).set_transform (t )
4145
4246 if path .size () < 2 :
4347 path = []
@@ -46,14 +50,31 @@ func _process(delta):
4650 set_process (false )
4751
4852
53+ func _input (event ):
54+ if event is InputEventMouseButton and event .button_index == BUTTON_LEFT and event .pressed :
55+ var from = get_node ("CameraBase/Camera" ).project_ray_origin (event .position )
56+ var to = from + get_node ("CameraBase/Camera" ).project_ray_normal (event .position ) * 100
57+ var p = get_closest_point_to_segment (from , to )
58+
59+ begin = get_closest_point (get_node ("RobotBase" ).get_translation ())
60+ end = p
61+ _update_path ()
62+
63+ if event is InputEventMouseMotion :
64+ if event .button_mask & (BUTTON_MASK_MIDDLE + BUTTON_MASK_RIGHT ):
65+ camrot += event .relative .x * 0.005
66+ get_node ("CameraBase" ).set_rotation (Vector3 (0 , camrot , 0 ))
67+ print ("Camera Rotation: " , camrot )
68+
69+
4970func _update_path ():
5071 var p = get_simple_path (begin , end , true )
51- path = Array (p ) # Vector3array too complex to use, convert to regular array
72+ path = Array (p ) # Vector3 array too complex to use, convert to regular array.
5273 path .invert ()
5374 set_process (true )
54-
75+
5576 if draw_path :
56- var im = get_node ("draw " )
77+ var im = get_node ("Draw " )
5778 im .set_material_override (m )
5879 im .clear ()
5980 im .begin (Mesh .PRIMITIVE_POINTS , null )
@@ -64,30 +85,3 @@ func _update_path():
6485 for x in p :
6586 im .add_vertex (x )
6687 im .end ()
67-
68-
69- func _input (event ):
70- # if event extends InputEventMouseButton and event.button_index == BUTTON_LEFT and event.pressed:
71- if event is InputEventMouseButton and event .button_index == BUTTON_LEFT and event .pressed :
72- var from = get_node ("cambase/Camera" ).project_ray_origin (event .position )
73- var to = from + get_node ("cambase/Camera" ).project_ray_normal (event .position )* 100
74- var p = get_closest_point_to_segment (from , to )
75-
76- begin = get_closest_point (get_node ("robot_base" ).get_translation ())
77- end = p
78-
79- _update_path ()
80-
81- if event is InputEventMouseMotion :
82- if event .button_mask & (BUTTON_MASK_MIDDLE + BUTTON_MASK_RIGHT ):
83- camrot += event .relative .x * 0.005
84- get_node ("cambase" ).set_rotation (Vector3 (0 , camrot , 0 ))
85- print ("camrot " , camrot )
86-
87-
88- func _ready ():
89- set_process_input (true )
90-
91- m .flags_unshaded = true
92- m .flags_use_point_size = true
93- m .albedo_color = Color (1.0 , 1.0 , 1.0 , 1.0 )
0 commit comments