mirror of
https://github.com/Orama-Interactive/Pixelorama.git
synced 2025-01-18 17:19:50 +00:00
Added lasso / free select tool
Temporary icon, probably. Should work without problems, but more testing would be nice.
This commit is contained in:
parent
909f9480cc
commit
b8d055fe01
BIN
assets/graphics/blue_themes/tools/lasso.png
Normal file
BIN
assets/graphics/blue_themes/tools/lasso.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 234 B |
34
assets/graphics/blue_themes/tools/lasso.png.import
Normal file
34
assets/graphics/blue_themes/tools/lasso.png.import
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path="res://.import/lasso.png-2d7bb4691ebff786d4d5b222e66bbf1a.stex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/graphics/blue_themes/tools/lasso.png"
|
||||||
|
dest_files=[ "res://.import/lasso.png-2d7bb4691ebff786d4d5b222e66bbf1a.stex" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_mode=0
|
||||||
|
compress/bptc_ldr=0
|
||||||
|
compress/normal_map=0
|
||||||
|
flags/repeat=0
|
||||||
|
flags/filter=false
|
||||||
|
flags/mipmaps=false
|
||||||
|
flags/anisotropic=false
|
||||||
|
flags/srgb=2
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/HDR_as_SRGB=false
|
||||||
|
process/invert_color=false
|
||||||
|
stream=false
|
||||||
|
size_limit=0
|
||||||
|
detect_3d=true
|
||||||
|
svg/scale=1.0
|
BIN
assets/graphics/cursor_icons/lasso_cursor.png
Normal file
BIN
assets/graphics/cursor_icons/lasso_cursor.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 212 B |
13
assets/graphics/cursor_icons/lasso_cursor.png.import
Normal file
13
assets/graphics/cursor_icons/lasso_cursor.png.import
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="image"
|
||||||
|
type="Image"
|
||||||
|
path="res://.import/lasso_cursor.png-f521b7296434da45c8ee9811a0a897a8.image"
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/graphics/cursor_icons/lasso_cursor.png"
|
||||||
|
dest_files=[ "res://.import/lasso_cursor.png-f521b7296434da45c8ee9811a0a897a8.image" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
BIN
assets/graphics/dark_themes/tools/lasso.png
Normal file
BIN
assets/graphics/dark_themes/tools/lasso.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 234 B |
34
assets/graphics/dark_themes/tools/lasso.png.import
Normal file
34
assets/graphics/dark_themes/tools/lasso.png.import
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path="res://.import/lasso.png-c0e22b291252cddaf44d885fa1a874e9.stex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/graphics/dark_themes/tools/lasso.png"
|
||||||
|
dest_files=[ "res://.import/lasso.png-c0e22b291252cddaf44d885fa1a874e9.stex" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_mode=0
|
||||||
|
compress/bptc_ldr=0
|
||||||
|
compress/normal_map=0
|
||||||
|
flags/repeat=0
|
||||||
|
flags/filter=false
|
||||||
|
flags/mipmaps=false
|
||||||
|
flags/anisotropic=false
|
||||||
|
flags/srgb=2
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/HDR_as_SRGB=false
|
||||||
|
process/invert_color=false
|
||||||
|
stream=false
|
||||||
|
size_limit=0
|
||||||
|
detect_3d=true
|
||||||
|
svg/scale=1.0
|
BIN
assets/graphics/light_themes/tools/lasso.png
Normal file
BIN
assets/graphics/light_themes/tools/lasso.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 212 B |
34
assets/graphics/light_themes/tools/lasso.png.import
Normal file
34
assets/graphics/light_themes/tools/lasso.png.import
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
[remap]
|
||||||
|
|
||||||
|
importer="texture"
|
||||||
|
type="StreamTexture"
|
||||||
|
path="res://.import/lasso.png-7f6bc6d622f35bb308d3e3f86a3a2b30.stex"
|
||||||
|
metadata={
|
||||||
|
"vram_texture": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[deps]
|
||||||
|
|
||||||
|
source_file="res://assets/graphics/light_themes/tools/lasso.png"
|
||||||
|
dest_files=[ "res://.import/lasso.png-7f6bc6d622f35bb308d3e3f86a3a2b30.stex" ]
|
||||||
|
|
||||||
|
[params]
|
||||||
|
|
||||||
|
compress/mode=0
|
||||||
|
compress/lossy_quality=0.7
|
||||||
|
compress/hdr_mode=0
|
||||||
|
compress/bptc_ldr=0
|
||||||
|
compress/normal_map=0
|
||||||
|
flags/repeat=0
|
||||||
|
flags/filter=false
|
||||||
|
flags/mipmaps=false
|
||||||
|
flags/anisotropic=false
|
||||||
|
flags/srgb=2
|
||||||
|
process/fix_alpha_border=true
|
||||||
|
process/premult_alpha=false
|
||||||
|
process/HDR_as_SRGB=false
|
||||||
|
process/invert_color=false
|
||||||
|
stream=false
|
||||||
|
size_limit=0
|
||||||
|
detect_3d=true
|
||||||
|
svg/scale=1.0
|
|
@ -576,6 +576,16 @@ right_ellipse_select_tool={
|
||||||
"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":true,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":89,"unicode":0,"echo":false,"script":null)
|
"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":true,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":89,"unicode":0,"echo":false,"script":null)
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
left_lasso_tool={
|
||||||
|
"deadzone": 0.5,
|
||||||
|
"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":70,"unicode":0,"echo":false,"script":null)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
right_lasso_tool={
|
||||||
|
"deadzone": 0.5,
|
||||||
|
"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":true,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":70,"unicode":0,"echo":false,"script":null)
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
[locale]
|
[locale]
|
||||||
|
|
||||||
|
|
|
@ -498,6 +498,13 @@ func update_hint_tooltips() -> void:
|
||||||
%s for right mouse button""") % [InputMap.get_action_list("left_magic_wand_tool")[0].as_text(), InputMap.get_action_list("right_magic_wand_tool")[0].as_text()]
|
%s for right mouse button""") % [InputMap.get_action_list("left_magic_wand_tool")[0].as_text(), InputMap.get_action_list("right_magic_wand_tool")[0].as_text()]
|
||||||
|
|
||||||
|
|
||||||
|
var lasso : BaseButton = tool_buttons.find_node("Lasso")
|
||||||
|
lasso.hint_tooltip = tr("""Lasso / Free Select Tool
|
||||||
|
|
||||||
|
%s for left mouse button
|
||||||
|
%s for right mouse button""") % [InputMap.get_action_list("left_lasso_tool")[0].as_text(), InputMap.get_action_list("right_lasso_tool")[0].as_text()]
|
||||||
|
|
||||||
|
|
||||||
var move_select : BaseButton = tool_buttons.find_node("Move")
|
var move_select : BaseButton = tool_buttons.find_node("Move")
|
||||||
move_select.hint_tooltip = tr("""Move
|
move_select.hint_tooltip = tr("""Move
|
||||||
|
|
||||||
|
|
|
@ -43,6 +43,7 @@ var _tools = {
|
||||||
"EllipseSelect" : "res://src/Tools/SelectionTools/EllipseSelect.tscn",
|
"EllipseSelect" : "res://src/Tools/SelectionTools/EllipseSelect.tscn",
|
||||||
"ColorSelect" : "res://src/Tools/SelectionTools/ColorSelect.tscn",
|
"ColorSelect" : "res://src/Tools/SelectionTools/ColorSelect.tscn",
|
||||||
"MagicWand" : "res://src/Tools/SelectionTools/MagicWand.tscn",
|
"MagicWand" : "res://src/Tools/SelectionTools/MagicWand.tscn",
|
||||||
|
"Lasso" : "res://src/Tools/SelectionTools/Lasso.tscn",
|
||||||
"Move" : "res://src/Tools/Move.tscn",
|
"Move" : "res://src/Tools/Move.tscn",
|
||||||
"Zoom" : "res://src/Tools/Zoom.tscn",
|
"Zoom" : "res://src/Tools/Zoom.tscn",
|
||||||
"Pan" : "res://src/Tools/Pan.tscn",
|
"Pan" : "res://src/Tools/Pan.tscn",
|
||||||
|
|
165
src/Tools/SelectionTools/Lasso.gd
Normal file
165
src/Tools/SelectionTools/Lasso.gd
Normal file
|
@ -0,0 +1,165 @@
|
||||||
|
extends SelectionTool
|
||||||
|
|
||||||
|
|
||||||
|
var _last_position := Vector2.INF
|
||||||
|
var _draw_points := []
|
||||||
|
|
||||||
|
|
||||||
|
func draw_start(position : Vector2) -> void:
|
||||||
|
.draw_start(position)
|
||||||
|
if !_move:
|
||||||
|
_draw_points.append(position)
|
||||||
|
_last_position = position
|
||||||
|
|
||||||
|
|
||||||
|
func draw_move(position : Vector2) -> void:
|
||||||
|
if selection_node.arrow_key_move:
|
||||||
|
return
|
||||||
|
.draw_move(position)
|
||||||
|
if !_move:
|
||||||
|
append_gap(_last_position, position)
|
||||||
|
_last_position = position
|
||||||
|
_draw_points.append(position)
|
||||||
|
_offset = position
|
||||||
|
|
||||||
|
|
||||||
|
func draw_end(position : Vector2) -> void:
|
||||||
|
if selection_node.arrow_key_move:
|
||||||
|
return
|
||||||
|
if !_move:
|
||||||
|
_draw_points.append(position)
|
||||||
|
.draw_end(position)
|
||||||
|
|
||||||
|
|
||||||
|
func draw_preview() -> void:
|
||||||
|
if !_move:
|
||||||
|
var canvas : Node2D = Global.canvas.previews
|
||||||
|
var _position := canvas.position
|
||||||
|
var _scale := canvas.scale
|
||||||
|
if Global.mirror_view:
|
||||||
|
_position.x = _position.x + Global.current_project.size.x
|
||||||
|
_scale.x = -1
|
||||||
|
canvas.draw_set_transform(_position, canvas.rotation, _scale)
|
||||||
|
var indicator := _fill_bitmap_with_points(_draw_points, Global.current_project.size)
|
||||||
|
|
||||||
|
for line in _create_polylines(indicator):
|
||||||
|
canvas.draw_polyline(PoolVector2Array(line), Color.black)
|
||||||
|
|
||||||
|
# Handle mirroring
|
||||||
|
if tool_slot.horizontal_mirror:
|
||||||
|
for line in _create_polylines(_fill_bitmap_with_points(mirror_array(_draw_points, true, false), Global.current_project.size)):
|
||||||
|
canvas.draw_polyline(PoolVector2Array(line), Color.black)
|
||||||
|
if tool_slot.vertical_mirror:
|
||||||
|
for line in _create_polylines(_fill_bitmap_with_points(mirror_array(_draw_points, true, true), Global.current_project.size)):
|
||||||
|
canvas.draw_polyline(PoolVector2Array(line), Color.black)
|
||||||
|
if tool_slot.vertical_mirror:
|
||||||
|
for line in _create_polylines(_fill_bitmap_with_points(mirror_array(_draw_points, false, true), Global.current_project.size)):
|
||||||
|
canvas.draw_polyline(PoolVector2Array(line), Color.black)
|
||||||
|
|
||||||
|
canvas.draw_set_transform(canvas.position, canvas.rotation, canvas.scale)
|
||||||
|
|
||||||
|
|
||||||
|
func apply_selection(_position) -> void:
|
||||||
|
var project : Project = Global.current_project
|
||||||
|
var cleared := false
|
||||||
|
if !_add and !_subtract and !_intersect:
|
||||||
|
cleared = true
|
||||||
|
Global.canvas.selection.clear_selection()
|
||||||
|
if _draw_points.size() > 3:
|
||||||
|
var selection_bitmap_copy : BitMap = project.selection_bitmap.duplicate()
|
||||||
|
var bitmap_size : Vector2 = selection_bitmap_copy.get_size()
|
||||||
|
if _intersect:
|
||||||
|
selection_bitmap_copy.set_bit_rect(Rect2(Vector2.ZERO, bitmap_size), false)
|
||||||
|
lasso_selection(selection_bitmap_copy, _draw_points)
|
||||||
|
|
||||||
|
# Handle mirroring
|
||||||
|
if tool_slot.horizontal_mirror:
|
||||||
|
lasso_selection(selection_bitmap_copy, mirror_array(_draw_points, true, false))
|
||||||
|
if tool_slot.vertical_mirror:
|
||||||
|
lasso_selection(selection_bitmap_copy, mirror_array(_draw_points, true, true))
|
||||||
|
if tool_slot.vertical_mirror:
|
||||||
|
lasso_selection(selection_bitmap_copy, mirror_array(_draw_points, false, true))
|
||||||
|
|
||||||
|
project.selection_bitmap = selection_bitmap_copy
|
||||||
|
Global.canvas.selection.big_bounding_rectangle = project.get_selection_rectangle(project.selection_bitmap)
|
||||||
|
else:
|
||||||
|
if !cleared:
|
||||||
|
Global.canvas.selection.clear_selection()
|
||||||
|
|
||||||
|
Global.canvas.selection.commit_undo("Rectangle Select", undo_data)
|
||||||
|
_draw_points.clear()
|
||||||
|
|
||||||
|
|
||||||
|
func lasso_selection(bitmap : BitMap, points : PoolVector2Array) -> void:
|
||||||
|
var project : Project = Global.current_project
|
||||||
|
var size := bitmap.get_size()
|
||||||
|
for point in points:
|
||||||
|
if point.x < 0 or point.y < 0 or point.x >= size.x or point.y >= size.y:
|
||||||
|
continue
|
||||||
|
if _intersect:
|
||||||
|
if project.selection_bitmap.get_bit(point):
|
||||||
|
bitmap.set_bit(point, true)
|
||||||
|
else:
|
||||||
|
bitmap.set_bit(point, !_subtract)
|
||||||
|
|
||||||
|
var image = _get_draw_image()
|
||||||
|
var v := Vector2()
|
||||||
|
var image_size = image.get_size()
|
||||||
|
for x in image_size.x:
|
||||||
|
v.x = x
|
||||||
|
for y in image_size.y:
|
||||||
|
v.y = y
|
||||||
|
if Geometry.is_point_in_polygon(v, points):
|
||||||
|
if _intersect:
|
||||||
|
if project.selection_bitmap.get_bit(v):
|
||||||
|
bitmap.set_bit(v, true)
|
||||||
|
else:
|
||||||
|
bitmap.set_bit(v, !_subtract)
|
||||||
|
|
||||||
|
|
||||||
|
# Bresenham's Algorithm
|
||||||
|
# Thanks to https://godotengine.org/qa/35276/tile-based-line-drawing-algorithm-efficiency
|
||||||
|
func append_gap(start : Vector2, end : Vector2) -> void:
|
||||||
|
var dx := int(abs(end.x - start.x))
|
||||||
|
var dy := int(-abs(end.y - start.y))
|
||||||
|
var err := dx + dy
|
||||||
|
var e2 := err << 1
|
||||||
|
var sx = 1 if start.x < end.x else -1
|
||||||
|
var sy = 1 if start.y < end.y else -1
|
||||||
|
var x = start.x
|
||||||
|
var y = start.y
|
||||||
|
while !(x == end.x && y == end.y):
|
||||||
|
e2 = err << 1
|
||||||
|
if e2 >= dy:
|
||||||
|
err += dy
|
||||||
|
x += sx
|
||||||
|
if e2 <= dx:
|
||||||
|
err += dx
|
||||||
|
y += sy
|
||||||
|
_draw_points.append(Vector2(x, y))
|
||||||
|
|
||||||
|
|
||||||
|
func _fill_bitmap_with_points(points: Array, size: Vector2) -> BitMap:
|
||||||
|
var bitmap := BitMap.new()
|
||||||
|
bitmap.create(size)
|
||||||
|
|
||||||
|
for point in points:
|
||||||
|
if point.x < 0 or point.y < 0 or point.x >= size.x or point.y >= size.y:
|
||||||
|
continue
|
||||||
|
bitmap.set_bit(point, 1)
|
||||||
|
|
||||||
|
return bitmap
|
||||||
|
|
||||||
|
|
||||||
|
func mirror_array(array : Array, h : bool, v : bool) -> Array:
|
||||||
|
var new_array := []
|
||||||
|
var project := Global.current_project
|
||||||
|
for point in array:
|
||||||
|
if h and v:
|
||||||
|
new_array.append(Vector2(project.x_symmetry_point - point.x, project.y_symmetry_point - point.y))
|
||||||
|
elif h:
|
||||||
|
new_array.append(Vector2(project.x_symmetry_point - point.x, point.y))
|
||||||
|
elif v:
|
||||||
|
new_array.append(Vector2(point.x, project.y_symmetry_point - point.y))
|
||||||
|
|
||||||
|
return new_array
|
7
src/Tools/SelectionTools/Lasso.tscn
Normal file
7
src/Tools/SelectionTools/Lasso.tscn
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
[gd_scene load_steps=3 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://src/Tools/SelectionTools/SelectionTool.tscn" type="PackedScene" id=1]
|
||||||
|
[ext_resource path="res://src/Tools/SelectionTools/Lasso.gd" type="Script" id=2]
|
||||||
|
|
||||||
|
[node name="ToolOptions" instance=ExtResource( 1 )]
|
||||||
|
script = ExtResource( 2 )
|
|
@ -7,6 +7,7 @@ onready var tools := [
|
||||||
[$EllipseSelect, "ellipse_select"],
|
[$EllipseSelect, "ellipse_select"],
|
||||||
[$ColorSelect, "color_select"],
|
[$ColorSelect, "color_select"],
|
||||||
[$MagicWand, "magic_wand"],
|
[$MagicWand, "magic_wand"],
|
||||||
|
[$Lasso, "lasso"],
|
||||||
[$Move, "move"],
|
[$Move, "move"],
|
||||||
[$Zoom, "zoom"],
|
[$Zoom, "zoom"],
|
||||||
[$Pan, "pan"],
|
[$Pan, "pan"],
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
[gd_scene load_steps=35 format=2]
|
[gd_scene load_steps=36 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://src/UI/ToolButtons.gd" type="Script" id=1]
|
[ext_resource path="res://src/UI/ToolButtons.gd" type="Script" id=1]
|
||||||
[ext_resource path="res://src/UI/Canvas/CanvasPreview.tscn" type="PackedScene" id=2]
|
[ext_resource path="res://src/UI/Canvas/CanvasPreview.tscn" type="PackedScene" id=2]
|
||||||
|
@ -31,6 +31,7 @@
|
||||||
[ext_resource path="res://assets/graphics/dark_themes/tools/magicwand.png" type="Texture" id=29]
|
[ext_resource path="res://assets/graphics/dark_themes/tools/magicwand.png" type="Texture" id=29]
|
||||||
[ext_resource path="res://assets/graphics/dark_themes/tools/linetool.png" type="Texture" id=30]
|
[ext_resource path="res://assets/graphics/dark_themes/tools/linetool.png" type="Texture" id=30]
|
||||||
[ext_resource path="res://assets/graphics/dark_themes/tools/ellipseselect.png" type="Texture" id=31]
|
[ext_resource path="res://assets/graphics/dark_themes/tools/ellipseselect.png" type="Texture" id=31]
|
||||||
|
[ext_resource path="res://assets/graphics/dark_themes/tools/lasso.png" type="Texture" id=32]
|
||||||
|
|
||||||
[sub_resource type="ShaderMaterial" id=1]
|
[sub_resource type="ShaderMaterial" id=1]
|
||||||
shader = ExtResource( 9 )
|
shader = ExtResource( 9 )
|
||||||
|
@ -95,7 +96,7 @@ __meta__ = {
|
||||||
margin_left = 7.0
|
margin_left = 7.0
|
||||||
margin_top = 7.0
|
margin_top = 7.0
|
||||||
margin_right = 39.0
|
margin_right = 39.0
|
||||||
margin_bottom = 543.0
|
margin_bottom = 579.0
|
||||||
size_flags_horizontal = 4
|
size_flags_horizontal = 4
|
||||||
size_flags_vertical = 0
|
size_flags_vertical = 0
|
||||||
script = ExtResource( 1 )
|
script = ExtResource( 1 )
|
||||||
|
@ -199,7 +200,7 @@ __meta__ = {
|
||||||
"_edit_use_anchors_": false
|
"_edit_use_anchors_": false
|
||||||
}
|
}
|
||||||
|
|
||||||
[node name="Move" type="Button" parent="ToolsAndCanvas/ToolPanel/PanelContainer/ToolButtons" groups=[
|
[node name="Lasso" type="Button" parent="ToolsAndCanvas/ToolPanel/PanelContainer/ToolButtons" groups=[
|
||||||
"UIButtons",
|
"UIButtons",
|
||||||
]]
|
]]
|
||||||
margin_top = 144.0
|
margin_top = 144.0
|
||||||
|
@ -209,6 +210,31 @@ rect_min_size = Vector2( 32, 32 )
|
||||||
mouse_default_cursor_shape = 2
|
mouse_default_cursor_shape = 2
|
||||||
button_mask = 3
|
button_mask = 3
|
||||||
|
|
||||||
|
[node name="Background" type="TextureRect" parent="ToolsAndCanvas/ToolPanel/PanelContainer/ToolButtons/Lasso"]
|
||||||
|
margin_right = 32.0
|
||||||
|
margin_bottom = 32.0
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_use_anchors_": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="ToolIcon" type="TextureRect" parent="ToolsAndCanvas/ToolPanel/PanelContainer/ToolButtons/Lasso"]
|
||||||
|
margin_right = 32.0
|
||||||
|
margin_bottom = 32.0
|
||||||
|
texture = ExtResource( 32 )
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_use_anchors_": false
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="Move" type="Button" parent="ToolsAndCanvas/ToolPanel/PanelContainer/ToolButtons" groups=[
|
||||||
|
"UIButtons",
|
||||||
|
]]
|
||||||
|
margin_top = 180.0
|
||||||
|
margin_right = 32.0
|
||||||
|
margin_bottom = 212.0
|
||||||
|
rect_min_size = Vector2( 32, 32 )
|
||||||
|
mouse_default_cursor_shape = 2
|
||||||
|
button_mask = 3
|
||||||
|
|
||||||
[node name="Background" type="TextureRect" parent="ToolsAndCanvas/ToolPanel/PanelContainer/ToolButtons/Move"]
|
[node name="Background" type="TextureRect" parent="ToolsAndCanvas/ToolPanel/PanelContainer/ToolButtons/Move"]
|
||||||
margin_right = 32.0
|
margin_right = 32.0
|
||||||
margin_bottom = 32.0
|
margin_bottom = 32.0
|
||||||
|
@ -227,9 +253,9 @@ __meta__ = {
|
||||||
[node name="Zoom" type="Button" parent="ToolsAndCanvas/ToolPanel/PanelContainer/ToolButtons" groups=[
|
[node name="Zoom" type="Button" parent="ToolsAndCanvas/ToolPanel/PanelContainer/ToolButtons" groups=[
|
||||||
"UIButtons",
|
"UIButtons",
|
||||||
]]
|
]]
|
||||||
margin_top = 180.0
|
margin_top = 216.0
|
||||||
margin_right = 32.0
|
margin_right = 32.0
|
||||||
margin_bottom = 212.0
|
margin_bottom = 248.0
|
||||||
rect_min_size = Vector2( 32, 32 )
|
rect_min_size = Vector2( 32, 32 )
|
||||||
mouse_default_cursor_shape = 2
|
mouse_default_cursor_shape = 2
|
||||||
button_mask = 3
|
button_mask = 3
|
||||||
|
@ -252,9 +278,9 @@ __meta__ = {
|
||||||
[node name="Pan" type="Button" parent="ToolsAndCanvas/ToolPanel/PanelContainer/ToolButtons" groups=[
|
[node name="Pan" type="Button" parent="ToolsAndCanvas/ToolPanel/PanelContainer/ToolButtons" groups=[
|
||||||
"UIButtons",
|
"UIButtons",
|
||||||
]]
|
]]
|
||||||
margin_top = 216.0
|
margin_top = 252.0
|
||||||
margin_right = 32.0
|
margin_right = 32.0
|
||||||
margin_bottom = 248.0
|
margin_bottom = 284.0
|
||||||
rect_min_size = Vector2( 32, 32 )
|
rect_min_size = Vector2( 32, 32 )
|
||||||
mouse_default_cursor_shape = 2
|
mouse_default_cursor_shape = 2
|
||||||
button_mask = 3
|
button_mask = 3
|
||||||
|
@ -277,9 +303,9 @@ __meta__ = {
|
||||||
[node name="ColorPicker" type="Button" parent="ToolsAndCanvas/ToolPanel/PanelContainer/ToolButtons" groups=[
|
[node name="ColorPicker" type="Button" parent="ToolsAndCanvas/ToolPanel/PanelContainer/ToolButtons" groups=[
|
||||||
"UIButtons",
|
"UIButtons",
|
||||||
]]
|
]]
|
||||||
margin_top = 252.0
|
margin_top = 288.0
|
||||||
margin_right = 32.0
|
margin_right = 32.0
|
||||||
margin_bottom = 284.0
|
margin_bottom = 320.0
|
||||||
rect_min_size = Vector2( 32, 32 )
|
rect_min_size = Vector2( 32, 32 )
|
||||||
mouse_default_cursor_shape = 2
|
mouse_default_cursor_shape = 2
|
||||||
button_mask = 3
|
button_mask = 3
|
||||||
|
@ -302,9 +328,9 @@ __meta__ = {
|
||||||
[node name="Pencil" type="Button" parent="ToolsAndCanvas/ToolPanel/PanelContainer/ToolButtons" groups=[
|
[node name="Pencil" type="Button" parent="ToolsAndCanvas/ToolPanel/PanelContainer/ToolButtons" groups=[
|
||||||
"UIButtons",
|
"UIButtons",
|
||||||
]]
|
]]
|
||||||
margin_top = 288.0
|
margin_top = 324.0
|
||||||
margin_right = 32.0
|
margin_right = 32.0
|
||||||
margin_bottom = 320.0
|
margin_bottom = 356.0
|
||||||
rect_min_size = Vector2( 32, 32 )
|
rect_min_size = Vector2( 32, 32 )
|
||||||
mouse_default_cursor_shape = 2
|
mouse_default_cursor_shape = 2
|
||||||
button_mask = 3
|
button_mask = 3
|
||||||
|
@ -328,9 +354,9 @@ __meta__ = {
|
||||||
[node name="Eraser" type="Button" parent="ToolsAndCanvas/ToolPanel/PanelContainer/ToolButtons" groups=[
|
[node name="Eraser" type="Button" parent="ToolsAndCanvas/ToolPanel/PanelContainer/ToolButtons" groups=[
|
||||||
"UIButtons",
|
"UIButtons",
|
||||||
]]
|
]]
|
||||||
margin_top = 324.0
|
margin_top = 360.0
|
||||||
margin_right = 32.0
|
margin_right = 32.0
|
||||||
margin_bottom = 356.0
|
margin_bottom = 392.0
|
||||||
rect_min_size = Vector2( 32, 32 )
|
rect_min_size = Vector2( 32, 32 )
|
||||||
mouse_default_cursor_shape = 2
|
mouse_default_cursor_shape = 2
|
||||||
button_mask = 3
|
button_mask = 3
|
||||||
|
@ -354,9 +380,9 @@ __meta__ = {
|
||||||
[node name="Bucket" type="Button" parent="ToolsAndCanvas/ToolPanel/PanelContainer/ToolButtons" groups=[
|
[node name="Bucket" type="Button" parent="ToolsAndCanvas/ToolPanel/PanelContainer/ToolButtons" groups=[
|
||||||
"UIButtons",
|
"UIButtons",
|
||||||
]]
|
]]
|
||||||
margin_top = 360.0
|
margin_top = 396.0
|
||||||
margin_right = 32.0
|
margin_right = 32.0
|
||||||
margin_bottom = 392.0
|
margin_bottom = 428.0
|
||||||
rect_min_size = Vector2( 32, 32 )
|
rect_min_size = Vector2( 32, 32 )
|
||||||
mouse_default_cursor_shape = 2
|
mouse_default_cursor_shape = 2
|
||||||
button_mask = 3
|
button_mask = 3
|
||||||
|
@ -379,9 +405,9 @@ __meta__ = {
|
||||||
[node name="LightenDarken" type="Button" parent="ToolsAndCanvas/ToolPanel/PanelContainer/ToolButtons" groups=[
|
[node name="LightenDarken" type="Button" parent="ToolsAndCanvas/ToolPanel/PanelContainer/ToolButtons" groups=[
|
||||||
"UIButtons",
|
"UIButtons",
|
||||||
]]
|
]]
|
||||||
margin_top = 396.0
|
margin_top = 432.0
|
||||||
margin_right = 32.0
|
margin_right = 32.0
|
||||||
margin_bottom = 428.0
|
margin_bottom = 464.0
|
||||||
rect_min_size = Vector2( 32, 32 )
|
rect_min_size = Vector2( 32, 32 )
|
||||||
mouse_default_cursor_shape = 2
|
mouse_default_cursor_shape = 2
|
||||||
button_mask = 3
|
button_mask = 3
|
||||||
|
@ -404,9 +430,9 @@ __meta__ = {
|
||||||
[node name="LineTool" type="Button" parent="ToolsAndCanvas/ToolPanel/PanelContainer/ToolButtons" groups=[
|
[node name="LineTool" type="Button" parent="ToolsAndCanvas/ToolPanel/PanelContainer/ToolButtons" groups=[
|
||||||
"UIButtons",
|
"UIButtons",
|
||||||
]]
|
]]
|
||||||
margin_top = 432.0
|
margin_top = 468.0
|
||||||
margin_right = 32.0
|
margin_right = 32.0
|
||||||
margin_bottom = 464.0
|
margin_bottom = 500.0
|
||||||
rect_min_size = Vector2( 32, 32 )
|
rect_min_size = Vector2( 32, 32 )
|
||||||
mouse_default_cursor_shape = 2
|
mouse_default_cursor_shape = 2
|
||||||
button_mask = 3
|
button_mask = 3
|
||||||
|
@ -429,9 +455,9 @@ __meta__ = {
|
||||||
[node name="RectangleTool" type="Button" parent="ToolsAndCanvas/ToolPanel/PanelContainer/ToolButtons" groups=[
|
[node name="RectangleTool" type="Button" parent="ToolsAndCanvas/ToolPanel/PanelContainer/ToolButtons" groups=[
|
||||||
"UIButtons",
|
"UIButtons",
|
||||||
]]
|
]]
|
||||||
margin_top = 468.0
|
margin_top = 504.0
|
||||||
margin_right = 32.0
|
margin_right = 32.0
|
||||||
margin_bottom = 500.0
|
margin_bottom = 536.0
|
||||||
rect_min_size = Vector2( 32, 32 )
|
rect_min_size = Vector2( 32, 32 )
|
||||||
mouse_default_cursor_shape = 2
|
mouse_default_cursor_shape = 2
|
||||||
button_mask = 3
|
button_mask = 3
|
||||||
|
@ -454,9 +480,9 @@ __meta__ = {
|
||||||
[node name="EllipseTool" type="Button" parent="ToolsAndCanvas/ToolPanel/PanelContainer/ToolButtons" groups=[
|
[node name="EllipseTool" type="Button" parent="ToolsAndCanvas/ToolPanel/PanelContainer/ToolButtons" groups=[
|
||||||
"UIButtons",
|
"UIButtons",
|
||||||
]]
|
]]
|
||||||
margin_top = 504.0
|
margin_top = 540.0
|
||||||
margin_right = 32.0
|
margin_right = 32.0
|
||||||
margin_bottom = 536.0
|
margin_bottom = 572.0
|
||||||
rect_min_size = Vector2( 32, 32 )
|
rect_min_size = Vector2( 32, 32 )
|
||||||
mouse_default_cursor_shape = 2
|
mouse_default_cursor_shape = 2
|
||||||
button_mask = 3
|
button_mask = 3
|
||||||
|
|
Loading…
Reference in a new issue