extends Node signal speed_changed var speed := 1.0 : set(value): speed = value speed_changed.emit() signal score_changed var score := 0 : set(value): score = value score_changed.emit() var selected_unit_type: PackedScene func erase_map(points: PackedVector2Array, collision_container: StaticBody2D, visibility_container: Node2D): var collision_polygons = collision_container.get_children() var visibility_polygons = visibility_container.get_children() for idx in range(collision_polygons.size()): var collision_node: CollisionPolygon2D = collision_polygons[idx] var visibility_node: Polygon2D = visibility_polygons[idx] var clipped = Geometry2D.clip_polygons(collision_node.polygon, points) if clipped.size() > 0 and not Geometry2D.is_polygon_clockwise(clipped[0]): collision_node.polygon = clipped[0] visibility_node.polygon = clipped[0] if clipped.size() > 1 and not Geometry2D.is_polygon_clockwise(clipped[1]): var collision_polygon = CollisionPolygon2D.new() collision_polygon.polygon = clipped[1] collision_container.add_child(collision_polygon) var visibility_polygon = Polygon2D.new() visibility_polygon.polygon = clipped[1] visibility_polygon.clip_children = CanvasItem.CLIP_CHILDREN_ONLY visibility_polygon.add_child(visibility_node.get_node("TileMapLayer").duplicate()) visibility_container.add_child(visibility_polygon)