16 lines
616 B
GDScript
16 lines
616 B
GDScript
extends Node
|
|
|
|
## ANGLES
|
|
|
|
# Check if a colliding body is aligned within a given angle of the object
|
|
# max_angle_diff --- note: set to 1 if angle won't be counted
|
|
# currently only works when objects are scaled (1,1,1)
|
|
func angle_velocity_aligned(source:Node, source_angle:Vector3, body:Node, max_angle_diff:Vector3):
|
|
var obj_direction = source.basis * source_angle
|
|
var player_direction = body.velocity.normalized()
|
|
var diff = abs(abs(obj_direction) - abs(player_direction))
|
|
if diff.x <= max_angle_diff.x and diff.y <= max_angle_diff.y and diff.z <= max_angle_diff.z:
|
|
return true
|
|
else:
|
|
return false
|