SummerDay/addons/summer_day/data/blueprint/template_editables/tube.gd

39 lines
836 B
GDScript

tool
extends SummerDayEditable
class_name SummerDayEditableTube
export(PoolVector2Array) var vertices = PoolVector2Array([
Vector2(-0.4, -0.4),
Vector2(0.1, -0.4),
Vector2(0.1, 0.1),
Vector2(-0.4, 0.1),
Vector2(-0.1, -0.1),
Vector2(0.4, -0.1),
Vector2(0.4, 0.4),
Vector2(-0.1, 0.4),
])
func _check_for_selection_candidate(event: InputEvent) -> bool: # Virtual.
if event is InputEventMouseButton:
if event.button_index == BUTTON_LEFT and event.pressed:
return _is_point_included(event.position)
return false
func _interact(event: InputEvent) -> bool: # Virtual.
return false
func _update_table(table: SummerDayTable): # Virtual.
pass
func _is_point_included(point: Vector2) -> bool: # Private.
var convex_hull = Geometry.convex_hull_2d(vertices)
return Geometry.is_point_in_polygon(point, convex_hull)