diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0af181c --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +# Godot 4+ specific ignores +.godot/ +/android/ diff --git a/addons/antialiased_line2d/antialiased_line2d.gd b/addons/antialiased_line2d/antialiased_line2d.gd deleted file mode 100644 index bd30427..0000000 --- a/addons/antialiased_line2d/antialiased_line2d.gd +++ /dev/null @@ -1,22 +0,0 @@ -@tool -@icon("antialiased_line2d.svg") -class_name AntialiasedLine2D -extends Line2D - - -func _ready() -> void: - texture = AntialiasedLine2DTexture.texture - texture_mode = Line2D.LINE_TEXTURE_TILE - texture_filter = TextureFilter.TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC - - -static func construct_closed_line(p_polygon: PackedVector2Array) -> PackedVector2Array: - var end_point: Vector2 = p_polygon[p_polygon.size() - 1] - var distance: float = end_point.distance_to(p_polygon[0]) # distance to start point - var bridge_point: Vector2 = end_point.move_toward(p_polygon[0], distance * 0.5) - # Close the polygon drawn by the line by adding superimposed bridge points between the start and end points. - var polygon_line := p_polygon - polygon_line.push_back(bridge_point) - polygon_line.insert(0, bridge_point) - - return polygon_line diff --git a/addons/antialiased_line2d/antialiased_line_2d.gd b/addons/antialiased_line2d/antialiased_line_2d.gd new file mode 100644 index 0000000..4c14c2b --- /dev/null +++ b/addons/antialiased_line2d/antialiased_line_2d.gd @@ -0,0 +1,33 @@ +@tool +@icon("antialiased_line_2d.svg") +class_name AntialiasedLine2D +extends Line2D + +const TEXTURE = preload("antialiased_texture.res") + +@export_storage var _is_instantiated := false + + +func _ready() -> void: + if _is_instantiated: + return + + texture = TEXTURE + texture_mode = Line2D.LINE_TEXTURE_TILE + texture_filter = TextureFilter.TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC + + _is_instantiated = true + + +func _property_can_revert(property: StringName) -> bool: + return property in [&"texture", &"texture_mode", &"texture_filter"] + + +func _property_get_revert(property: StringName) -> Variant: + if property == &"texture": + return TEXTURE + elif property == &"texture_mode": + return Line2D.LINE_TEXTURE_TILE + elif property == &"texture_filter": + return TextureFilter.TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC + return null diff --git a/addons/antialiased_line2d/antialiased_line_2d.gd.uid b/addons/antialiased_line2d/antialiased_line_2d.gd.uid new file mode 100644 index 0000000..c4bca11 --- /dev/null +++ b/addons/antialiased_line2d/antialiased_line_2d.gd.uid @@ -0,0 +1 @@ +uid://dn534defa6rgl diff --git a/addons/antialiased_line2d/antialiased_line2d.svg b/addons/antialiased_line2d/antialiased_line_2d.svg similarity index 100% rename from addons/antialiased_line2d/antialiased_line2d.svg rename to addons/antialiased_line2d/antialiased_line_2d.svg diff --git a/addons/antialiased_line2d/antialiased_line2d.svg.import b/addons/antialiased_line2d/antialiased_line_2d.svg.import similarity index 60% rename from addons/antialiased_line2d/antialiased_line2d.svg.import rename to addons/antialiased_line2d/antialiased_line_2d.svg.import index 07a7930..c0ccd78 100644 --- a/addons/antialiased_line2d/antialiased_line2d.svg.import +++ b/addons/antialiased_line2d/antialiased_line_2d.svg.import @@ -3,21 +3,23 @@ importer="texture" type="CompressedTexture2D" uid="uid://guodfckewtpv" -path="res://.godot/imported/antialiased_line2d.svg-9243613cd101e058db6c37ff468932c4.ctex" +path="res://.godot/imported/antialiased_line_2d.svg-e464e33122bc77a73cfbb4456f98b08b.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://addons/antialiased_line2d/antialiased_line2d.svg" -dest_files=["res://.godot/imported/antialiased_line2d.svg-9243613cd101e058db6c37ff468932c4.ctex"] +source_file="res://addons/antialiased_line2d/antialiased_line_2d.svg" +dest_files=["res://.godot/imported/antialiased_line_2d.svg-e464e33122bc77a73cfbb4456f98b08b.ctex"] [params] compress/mode=0 compress/high_quality=false compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 compress/hdr_compression=1 compress/normal_map=0 compress/channel_pack=0 @@ -25,6 +27,10 @@ mipmaps/generate=false mipmaps/limit=-1 roughness/mode=0 roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false diff --git a/addons/antialiased_line2d/antialiased_polygon2d.gd b/addons/antialiased_line2d/antialiased_polygon2d.gd deleted file mode 100644 index 038adca..0000000 --- a/addons/antialiased_line2d/antialiased_polygon2d.gd +++ /dev/null @@ -1,55 +0,0 @@ -# This is a convenience node that automatically synchronizes an AntialiasedLine2D -# with a Polygon2D. -@tool -@icon("antialiased_polygon2d.svg") -class_name AntialiasedPolygon2D -extends Polygon2D - -@export var stroke_color := Color(0.4, 0.5, 1.0): set = set_stroke_color -@export_range(0.0, 1000.0) var stroke_width:float = 10.0: set = set_stroke_width -@export var stroke_joint_mode:Line2D.LineJointMode = Line2D.LINE_JOINT_SHARP: set = set_stroke_joint_mode -@export_range(0.0, 1000.0) var stroke_sharp_limit:float = 2.0: set = set_stroke_sharp_limit -@export_range(1, 32) var stroke_round_precision: int = 8: set = set_stroke_round_precision - -var line_2d := Line2D.new() - - -func _ready() -> void: - line_2d.texture = AntialiasedLine2DTexture.texture - line_2d.texture_mode = Line2D.LINE_TEXTURE_TILE - line_2d.texture_filter = TextureFilter.TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC - if polygon.size() >= 1: - line_2d.points = AntialiasedLine2D.construct_closed_line(polygon) - add_child(line_2d) - - -func _set(property: StringName, value: Variant) -> bool: - if property == &"polygon": - line_2d.points = AntialiasedLine2D.construct_closed_line(polygon) - - return false - - -func set_stroke_color(p_stroke_color: Color) -> void: - stroke_color = p_stroke_color - line_2d.default_color = stroke_color - - -func set_stroke_width(p_stroke_width: float) -> void: - stroke_width = p_stroke_width - line_2d.width = stroke_width - - -func set_stroke_joint_mode(p_stroke_joint_mode: Line2D.LineJointMode) -> void: - stroke_joint_mode = p_stroke_joint_mode - line_2d.joint_mode = stroke_joint_mode - - -func set_stroke_sharp_limit(p_stroke_sharp_limit: float) -> void: - stroke_sharp_limit = p_stroke_sharp_limit - line_2d.sharp_limit = stroke_sharp_limit - - -func set_stroke_round_precision(p_stroke_round_precision: int) -> void: - stroke_round_precision = p_stroke_round_precision - line_2d.round_precision = stroke_round_precision diff --git a/addons/antialiased_line2d/antialiased_polygon_2d.gd b/addons/antialiased_line2d/antialiased_polygon_2d.gd new file mode 100644 index 0000000..ad2e7af --- /dev/null +++ b/addons/antialiased_line2d/antialiased_polygon_2d.gd @@ -0,0 +1,58 @@ +# This is a convenience node that automatically synchronizes an AntialiasedLine2D +# with a Polygon2D. +@tool +@icon("antialiased_polygon_2d.svg") +class_name AntialiasedPolygon2D +extends Polygon2D + +@export var stroke_color := Color.BLACK: + set = set_stroke_color +@export_range(0.0, 1000.0) var stroke_width: float = 10.0: + set = set_stroke_width +@export var stroke_joint_mode: Line2D.LineJointMode = Line2D.LINE_JOINT_SHARP: + set = set_stroke_joint_mode +@export_range(0.0, 1000.0) var stroke_sharp_limit: float = 2.0: + set = set_stroke_sharp_limit +@export_range(1, 32) var stroke_round_precision: int = 8: + set = set_stroke_round_precision + +var antialiased_line_2d := AntialiasedLine2D.new() + + +func _ready() -> void: + draw.connect(func() -> void: antialiased_line_2d.points = polygon) + + antialiased_line_2d.closed = true + add_child(antialiased_line_2d, false, Node.INTERNAL_MODE_FRONT) + antialiased_line_2d.owner = self + + stroke_color = stroke_color + stroke_width = stroke_width + stroke_joint_mode = stroke_joint_mode + stroke_sharp_limit = stroke_sharp_limit + stroke_round_precision = stroke_round_precision + + +func set_stroke_color(p_stroke_color: Color) -> void: + stroke_color = p_stroke_color + antialiased_line_2d.default_color = stroke_color + + +func set_stroke_width(p_stroke_width: float) -> void: + stroke_width = p_stroke_width + antialiased_line_2d.width = stroke_width + + +func set_stroke_joint_mode(p_stroke_joint_mode: Line2D.LineJointMode) -> void: + stroke_joint_mode = p_stroke_joint_mode + antialiased_line_2d.joint_mode = stroke_joint_mode + + +func set_stroke_sharp_limit(p_stroke_sharp_limit: float) -> void: + stroke_sharp_limit = p_stroke_sharp_limit + antialiased_line_2d.sharp_limit = stroke_sharp_limit + + +func set_stroke_round_precision(p_stroke_round_precision: int) -> void: + stroke_round_precision = p_stroke_round_precision + antialiased_line_2d.round_precision = stroke_round_precision diff --git a/addons/antialiased_line2d/antialiased_polygon_2d.gd.uid b/addons/antialiased_line2d/antialiased_polygon_2d.gd.uid new file mode 100644 index 0000000..d9c8502 --- /dev/null +++ b/addons/antialiased_line2d/antialiased_polygon_2d.gd.uid @@ -0,0 +1 @@ +uid://cffrqtfahnwmy diff --git a/addons/antialiased_line2d/antialiased_polygon2d.svg b/addons/antialiased_line2d/antialiased_polygon_2d.svg similarity index 100% rename from addons/antialiased_line2d/antialiased_polygon2d.svg rename to addons/antialiased_line2d/antialiased_polygon_2d.svg diff --git a/addons/antialiased_line2d/antialiased_polygon2d.svg.import b/addons/antialiased_line2d/antialiased_polygon_2d.svg.import similarity index 65% rename from addons/antialiased_line2d/antialiased_polygon2d.svg.import rename to addons/antialiased_line2d/antialiased_polygon_2d.svg.import index 49414e5..3e2cfd9 100644 --- a/addons/antialiased_line2d/antialiased_polygon2d.svg.import +++ b/addons/antialiased_line2d/antialiased_polygon_2d.svg.import @@ -3,21 +3,23 @@ importer="texture" type="CompressedTexture2D" uid="uid://bkfc7y0qnfi4a" -path="res://.godot/imported/antialiased_polygon2d.svg-d9d32c42c22022e4f4053cee124a07c0.ctex" +path="res://.godot/imported/antialiased_polygon_2d.svg-551511e1467fb80a5d4a598652644318.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://addons/antialiased_line2d/antialiased_polygon2d.svg" -dest_files=["res://.godot/imported/antialiased_polygon2d.svg-d9d32c42c22022e4f4053cee124a07c0.ctex"] +source_file="res://addons/antialiased_line2d/antialiased_polygon_2d.svg" +dest_files=["res://.godot/imported/antialiased_polygon_2d.svg-551511e1467fb80a5d4a598652644318.ctex"] [params] compress/mode=0 compress/high_quality=false compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 compress/hdr_compression=1 compress/normal_map=0 compress/channel_pack=0 @@ -25,6 +27,10 @@ mipmaps/generate=false mipmaps/limit=-1 roughness/mode=0 roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false diff --git a/addons/antialiased_line2d/antialiased_regular_polygon2d.gd b/addons/antialiased_line2d/antialiased_regular_polygon2d.gd deleted file mode 100644 index 02c49f8..0000000 --- a/addons/antialiased_line2d/antialiased_regular_polygon2d.gd +++ /dev/null @@ -1,82 +0,0 @@ -# This is a convenience node that automatically synchronizes an AntialiasedLine2D -# with a Polygon2D, while also generating a regular Polygon2D shape (hexagon, octagon, …). -@tool -@icon("antialiased_regular_polygon2d.svg") -class_name AntialiasedRegularPolygon2D -extends Polygon2D - -@export var size := Vector2(64, 64): set = set_size -@export_range(3, 128) var sides: int = 32: set = set_sides -@export_range(0.0, 360.0) var angle_degrees: float = 360: set = set_angle_degrees -@export var stroke_color := Color(0.4, 0.5, 1.0): set = set_stroke_color -@export_range(0.0, 1000.0) var stroke_width:float = 10.0: set = set_stroke_width -@export var stroke_joint_mode:Line2D.LineJointMode = Line2D.LINE_JOINT_SHARP: set = set_stroke_joint_mode -@export_range(0.0, 1000.0) var stroke_sharp_limit:float = 2.0: set = set_stroke_sharp_limit -@export_range(1, 32) var stroke_round_precision: int = 8: set = set_stroke_round_precision - -var line_2d := Line2D.new() - - -func _ready() -> void: - line_2d.texture = AntialiasedLine2DTexture.texture - line_2d.texture_mode = Line2D.LINE_TEXTURE_TILE - line_2d.texture_filter = TextureFilter.TEXTURE_FILTER_LINEAR_WITH_MIPMAPS_ANISOTROPIC - update_points() - add_child(line_2d) - - -func _set(property: StringName, value: Variant) -> bool: - if property == &"polygon": - line_2d.points = AntialiasedLine2D.construct_closed_line(value) - - return false - - -func update_points() -> void: - var points := PackedVector2Array() - for side in sides: - points.push_back(Vector2(0, -1).rotated(side / float(sides) * deg_to_rad(angle_degrees)) * size * 0.5) - if not is_equal_approx(angle_degrees, 360.0): - points.push_back(Vector2.ZERO) - polygon = points - # Force an update of the Line2D here to prevent it from getting out of sync. - line_2d.points = AntialiasedLine2D.construct_closed_line(polygon) - - -func set_size(p_size: Vector2) -> void: - size = p_size - update_points() - - -func set_sides(p_sides: int) -> void: - sides = p_sides - update_points() - - -func set_angle_degrees(p_angle_degrees: float) -> void: - angle_degrees = p_angle_degrees - update_points() - - -func set_stroke_color(p_stroke_color: Color) -> void: - stroke_color = p_stroke_color - line_2d.default_color = stroke_color - -func set_stroke_width(p_stroke_width: float) -> void: - stroke_width = p_stroke_width - line_2d.width = stroke_width - - -func set_stroke_joint_mode(p_stroke_joint_mode: Line2D.LineJointMode) -> void: - stroke_joint_mode = p_stroke_joint_mode - line_2d.joint_mode = stroke_joint_mode - - -func set_stroke_sharp_limit(p_stroke_sharp_limit: float) -> void: - stroke_sharp_limit = p_stroke_sharp_limit - line_2d.sharp_limit = stroke_sharp_limit - - -func set_stroke_round_precision(p_stroke_round_precision: int) -> void: - stroke_round_precision = p_stroke_round_precision - line_2d.round_precision = stroke_round_precision diff --git a/addons/antialiased_line2d/antialiased_regular_polygon_2d.gd b/addons/antialiased_line2d/antialiased_regular_polygon_2d.gd new file mode 100644 index 0000000..dd7391d --- /dev/null +++ b/addons/antialiased_line2d/antialiased_regular_polygon_2d.gd @@ -0,0 +1,53 @@ +# This is a convenience node that automatically synchronizes an AntialiasedLine2D +# with a Polygon2D, while also generating a regular Polygon2D shape (hexagon, octagon, …). +@tool +@icon("antialiased_regular_polygon_2d.svg") +class_name AntialiasedRegularPolygon2D +extends AntialiasedPolygon2D + +@export_custom(PROPERTY_HINT_LINK, "suffix:px") var size := Vector2(64.0, 64.0): + set = set_size +@export_range(3, 128, 1, "or_greater") var sides := 32: + set = set_sides +@export_range(-360, 360.0, 0.01, "radians_as_degrees", "prefer_slider") var arc := TAU: + set = set_arc + + +func _ready() -> void: + super() + for connection: Dictionary in draw.get_connections(): + draw.disconnect(connection.callable) + _update_points() + + +func _update_points() -> void: + polygon = build_polygon(size, sides, arc) + antialiased_line_2d.points = polygon + + +func set_size(p_size: Vector2) -> void: + size = p_size + _update_points() + + +func set_sides(p_sides: int) -> void: + sides = p_sides + _update_points() + + +func set_arc(p_arc: float) -> void: + arc = clampf(p_arc, -TAU, TAU) + _update_points() + + +static func build_polygon(size: Vector2, sides := 32, arc := TAU, has_point_at_origin := true) -> PackedVector2Array: + var result := PackedVector2Array() + var half_size := size * 0.5 + for side: int in range(sides): + result.push_back(Vector2.RIGHT.rotated(side / float(sides) * arc) * half_size) + + if not is_equal_approx(absf(arc), TAU): + result.push_back(Vector2.RIGHT.rotated(arc) * half_size) + if has_point_at_origin: + result.push_back(Vector2.ZERO) + return result diff --git a/addons/antialiased_line2d/antialiased_regular_polygon_2d.gd.uid b/addons/antialiased_line2d/antialiased_regular_polygon_2d.gd.uid new file mode 100644 index 0000000..53eb65c --- /dev/null +++ b/addons/antialiased_line2d/antialiased_regular_polygon_2d.gd.uid @@ -0,0 +1 @@ +uid://do0g7nebwevll diff --git a/addons/antialiased_line2d/antialiased_regular_polygon2d.svg b/addons/antialiased_line2d/antialiased_regular_polygon_2d.svg similarity index 100% rename from addons/antialiased_line2d/antialiased_regular_polygon2d.svg rename to addons/antialiased_line2d/antialiased_regular_polygon_2d.svg diff --git a/addons/antialiased_line2d/antialiased_regular_polygon2d.svg.import b/addons/antialiased_line2d/antialiased_regular_polygon_2d.svg.import similarity index 64% rename from addons/antialiased_line2d/antialiased_regular_polygon2d.svg.import rename to addons/antialiased_line2d/antialiased_regular_polygon_2d.svg.import index c958857..d387caf 100644 --- a/addons/antialiased_line2d/antialiased_regular_polygon2d.svg.import +++ b/addons/antialiased_line2d/antialiased_regular_polygon_2d.svg.import @@ -3,21 +3,23 @@ importer="texture" type="CompressedTexture2D" uid="uid://cypudkhnexspo" -path="res://.godot/imported/antialiased_regular_polygon2d.svg-90c0efb58c0991f1567ca6f17fea2cda.ctex" +path="res://.godot/imported/antialiased_regular_polygon_2d.svg-e5fe8971a84cb7ee564c075edcb739d4.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://addons/antialiased_line2d/antialiased_regular_polygon2d.svg" -dest_files=["res://.godot/imported/antialiased_regular_polygon2d.svg-90c0efb58c0991f1567ca6f17fea2cda.ctex"] +source_file="res://addons/antialiased_line2d/antialiased_regular_polygon_2d.svg" +dest_files=["res://.godot/imported/antialiased_regular_polygon_2d.svg-e5fe8971a84cb7ee564c075edcb739d4.ctex"] [params] compress/mode=0 compress/high_quality=false compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 compress/hdr_compression=1 compress/normal_map=0 compress/channel_pack=0 @@ -25,6 +27,10 @@ mipmaps/generate=false mipmaps/limit=-1 roughness/mode=0 roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false diff --git a/addons/antialiased_line2d/antialiased_texture.res b/addons/antialiased_line2d/antialiased_texture.res new file mode 100644 index 0000000..034dfea Binary files /dev/null and b/addons/antialiased_line2d/antialiased_texture.res differ diff --git a/addons/antialiased_line2d/texture.gd b/addons/antialiased_line2d/generate_antialiased_texture.gd similarity index 66% rename from addons/antialiased_line2d/texture.gd rename to addons/antialiased_line2d/generate_antialiased_texture.gd index b3973c6..cddad12 100644 --- a/addons/antialiased_line2d/texture.gd +++ b/addons/antialiased_line2d/generate_antialiased_texture.gd @@ -1,22 +1,19 @@ @tool -extends Node +extends EditorScript # Generates the antialiased Line2D texture that will be used by the various nodes. # We do this in a singleton to perform this generation once at load, rather than once # for every AntialiasedLine2D node. This generation can take several dozen milliseconds, # so it would cause stuttering if performed during gameplay. -var texture: ImageTexture = null - - -func _ready() -> void: +func _run() -> void: # Generate a texture with custom mipmaps (1-pixel feather on the top and bottom sides). - # The texture must be square for mipmaps to work correctly. The texture's in-memory size is still - # pretty low (less than 200 KB), so this should not cause any performance problems. + # The texture must be square for mipmaps to work correctly. The texture's in-memory size + # is still pretty low (less than 200 KB), so this should not cause any performance problems. var data := PackedByteArray() - for mipmap in [256, 128, 64, 32, 16, 8, 4, 2, 1]: - for y in mipmap: - for x in mipmap: + for mipmap: int in [256, 128, 64, 32, 16, 8, 4, 2, 1]: + for y: int in range(mipmap): + for x: int in range(mipmap): # White. If you need a different color for the Line2D, change the `default_color` property. data.push_back(255) @@ -42,5 +39,9 @@ func _ready() -> void: # Average of 0 and 255 (there is only one pixel). data.push_back(128) - var image = Image.create_from_data(256, 256, true, Image.FORMAT_LA8, data) - texture = ImageTexture.create_from_image(image) + var image := Image.create_from_data(256, 256, true, Image.FORMAT_LA8, data) + var texture := ImageTexture.create_from_image(image) + + # Saving it binary significantly reduces the size of scenes using these addon nodes. It also + # stops Godot complaining that the scenes are too large. + ResourceSaver.save(texture, "res://addons/antialiased_line2d/antialiased_texture.res") diff --git a/addons/antialiased_line2d/generate_antialiased_texture.gd.uid b/addons/antialiased_line2d/generate_antialiased_texture.gd.uid new file mode 100644 index 0000000..3211245 --- /dev/null +++ b/addons/antialiased_line2d/generate_antialiased_texture.gd.uid @@ -0,0 +1 @@ +uid://bmweaw7b725v0 diff --git a/addons/antialiased_line2d/plugin.gd b/addons/antialiased_line2d/plugin.gd index e5e9dab..5af87f6 100644 --- a/addons/antialiased_line2d/plugin.gd +++ b/addons/antialiased_line2d/plugin.gd @@ -1,10 +1,2 @@ @tool extends EditorPlugin - - -func _enter_tree() -> void: - add_autoload_singleton("AntialiasedLine2DTexture", "res://addons/antialiased_line2d/texture.gd") - - -func _exit_tree() -> void: - remove_autoload_singleton("AntialiasedLine2DTexture") diff --git a/addons/antialiased_line2d/plugin.gd.uid b/addons/antialiased_line2d/plugin.gd.uid new file mode 100644 index 0000000..448c44c --- /dev/null +++ b/addons/antialiased_line2d/plugin.gd.uid @@ -0,0 +1 @@ +uid://bc54m2bgeinam diff --git a/icon.png b/icon.png deleted file mode 100644 index 6518f38..0000000 Binary files a/icon.png and /dev/null differ diff --git a/icon.svg b/icon.svg deleted file mode 100644 index b26c807..0000000 --- a/icon.svg +++ /dev/null @@ -1 +0,0 @@ -