mirror of
https://github.com/Relintai/GraphicsEditor.git
synced 2024-11-12 08:15:17 +01:00
Updated settings and dialogs
This commit is contained in:
parent
f92049d2ae
commit
2b33048819
22
addons/graphics_editor/Dialogs.gd
Normal file
22
addons/graphics_editor/Dialogs.gd
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
extends Control
|
||||||
|
|
||||||
|
var util = preload("res://addons/graphics_editor/Util.gd")
|
||||||
|
|
||||||
|
func _ready():
|
||||||
|
var dialog_folder = get_script().resource_path.get_base_dir()
|
||||||
|
var files = util.get_files_from_path(dialog_folder.plus_file("Dialogs"))
|
||||||
|
for i in files:
|
||||||
|
var file_name = util.get_file_name(i)
|
||||||
|
if i.get_extension() == "tscn":
|
||||||
|
var new_scene = load(i).instance()
|
||||||
|
add_child(new_scene)
|
||||||
|
#new_scene.set_anchors_preset(PRESET_CENTER)
|
||||||
|
|
||||||
|
func show_dialog(dialog_name):
|
||||||
|
var dialog_node = get_node_or_null(dialog_name)
|
||||||
|
if dialog_node:
|
||||||
|
dialog_node.set_anchors_preset(PRESET_CENTER)
|
||||||
|
dialog_node.rect_position = Vector2((rect_size.x / 2) - (dialog_node.rect_size.x / 2), (rect_size.y / 2) - (dialog_node.rect_size.y / 2))
|
||||||
|
dialog_node.show()
|
||||||
|
else:
|
||||||
|
push_error("Can't load dialog! Either missing node or file?")
|
@ -1,6 +1,6 @@
|
|||||||
[gd_scene load_steps=2 format=2]
|
[gd_scene load_steps=2 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://addons/graphics_editor/ExpandCanvas.gd" type="Script" id=1]
|
[ext_resource path="res://addons/graphics_editor/Dialogs/ExpandCanvas.gd" type="Script" id=1]
|
||||||
|
|
||||||
[node name="ExpandCanvas" type="WindowDialog"]
|
[node name="ExpandCanvas" type="WindowDialog"]
|
||||||
anchor_right = 1.0
|
anchor_right = 1.0
|
@ -1,7 +1,7 @@
|
|||||||
tool
|
tool
|
||||||
extends FileDialog
|
extends FileDialog
|
||||||
|
|
||||||
onready var canvas = get_parent().get_node("PaintCanvasContainer/ViewportContainer/Viewport/PaintCanvas")
|
onready var canvas = get_parent().get_parent().get_node("PaintCanvasContainer/ViewportContainer/Viewport/PaintCanvas")
|
||||||
|
|
||||||
var file_path = ""
|
var file_path = ""
|
||||||
|
|
@ -1,6 +1,7 @@
|
|||||||
[gd_scene load_steps=2 format=2]
|
[gd_scene load_steps=2 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://addons/graphics_editor/NewImage.gd" type="Script" id=1]
|
[ext_resource path="res://addons/graphics_editor/Dialogs/NewImage.gd" type="Script" id=1]
|
||||||
|
|
||||||
|
|
||||||
[node name="NewImage" type="WindowDialog"]
|
[node name="NewImage" type="WindowDialog"]
|
||||||
anchor_right = 1.0
|
anchor_right = 1.0
|
@ -1,7 +1,7 @@
|
|||||||
tool
|
tool
|
||||||
extends FileDialog
|
extends FileDialog
|
||||||
|
|
||||||
onready var canvas = get_parent().get_node("PaintCanvasContainer/ViewportContainer/Viewport/PaintCanvas")
|
onready var canvas = get_parent().get_parent().get_node("PaintCanvasContainer/ViewportContainer/Viewport/PaintCanvas")
|
||||||
|
|
||||||
var file_path = ""
|
var file_path = ""
|
||||||
|
|
197
addons/graphics_editor/Dialogs/Settings.gd
Normal file
197
addons/graphics_editor/Dialogs/Settings.gd
Normal file
@ -0,0 +1,197 @@
|
|||||||
|
tool
|
||||||
|
extends Control
|
||||||
|
|
||||||
|
#TODO: Make the settings auto generate!
|
||||||
|
|
||||||
|
onready var editor = get_parent().get_parent()
|
||||||
|
onready var canvas_outline = editor.get_node("PaintCanvasContainer/ViewportContainer/Viewport/PaintCanvas/CanvasOutline")
|
||||||
|
onready var visual_grid_1 = editor.get_node("PaintCanvasContainer/ViewportContainer/Viewport/PaintCanvas/Grids/VisualGrid")
|
||||||
|
onready var visual_grid_2 = editor.get_node("PaintCanvasContainer/ViewportContainer/Viewport/PaintCanvas/Grids/VisualGrid2")
|
||||||
|
onready var scroll_container = get_node("ScrollContainer")
|
||||||
|
|
||||||
|
#{
|
||||||
|
# "CATEGORY": {
|
||||||
|
# "SETTINGNAME": {
|
||||||
|
# "node": "PATHTONODE",
|
||||||
|
# "valueMod": "VALUETOMODIFY",
|
||||||
|
# "setterType": "SETTERTYPE"
|
||||||
|
# }
|
||||||
|
# }
|
||||||
|
#}
|
||||||
|
|
||||||
|
#ValueSetterType List:
|
||||||
|
#ColorPicker
|
||||||
|
#CheckButton
|
||||||
|
#SpinBox
|
||||||
|
|
||||||
|
var setting_storage = {
|
||||||
|
"Canvas Outline": {
|
||||||
|
"Enabled": {
|
||||||
|
"node": canvas_outline,
|
||||||
|
"valueMod": "visible",
|
||||||
|
"setterType": "CheckBox"
|
||||||
|
},
|
||||||
|
"Color": {
|
||||||
|
"node": canvas_outline,
|
||||||
|
"valueMod": "color",
|
||||||
|
"setterType": "ColorPicker"
|
||||||
|
},
|
||||||
|
"Width": {
|
||||||
|
"node": canvas_outline,
|
||||||
|
"valueMod": "width",
|
||||||
|
"setterType": "SpinBox"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Grids": {
|
||||||
|
"Grid1_Color": {
|
||||||
|
"node": visual_grid_1,
|
||||||
|
"valueMod": "color",
|
||||||
|
"setterType": "ColorPicker"
|
||||||
|
},
|
||||||
|
"Grid1_Size": {
|
||||||
|
"node": visual_grid_1,
|
||||||
|
"valueMod": "grid_size",
|
||||||
|
"setterType": "SpinBox"
|
||||||
|
},
|
||||||
|
"Grid2_Color": {
|
||||||
|
"node": visual_grid_2,
|
||||||
|
"valueMod": "color",
|
||||||
|
"setterType": "ColorPicker"
|
||||||
|
},
|
||||||
|
"Grid2_Size": {
|
||||||
|
"node": visual_grid_2,
|
||||||
|
"valueMod": "grid_size",
|
||||||
|
"setterType": "SpinBox"
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#TODO: Instead of this current system, we can make a function type of system instead like this
|
||||||
|
#generate_category(name)
|
||||||
|
#generate_property(category_name, node, valueMod) # setterType is automatically detected from the property it gets from the node
|
||||||
|
|
||||||
|
func _ready():
|
||||||
|
generate_category_container("Canvas Outline")
|
||||||
|
generate_property_container("Canvas Outline", canvas_outline, "Enabled", "visible")
|
||||||
|
generate_property_container("Canvas Outline", canvas_outline, "Color", "color")
|
||||||
|
generate_property_container("Canvas Outline", canvas_outline, "Width", "width")
|
||||||
|
generate_category_container("Grids")
|
||||||
|
generate_property_container("Grids", visual_grid_1, "Grid1 Enabled", "visible")
|
||||||
|
generate_property_container("Grids", visual_grid_1, "Grid1 Color", "color")
|
||||||
|
generate_property_container("Grids", visual_grid_1, "Grid1 Size", "size")
|
||||||
|
generate_property_container("Grids", visual_grid_2, "Grid2 Enabled", "visible")
|
||||||
|
generate_property_container("Grids", visual_grid_2, "Grid2 Color", "color")
|
||||||
|
generate_property_container("Grids", visual_grid_2, "Grid2 Size", "size")
|
||||||
|
|
||||||
|
func generate_settings():
|
||||||
|
for i in setting_storage:
|
||||||
|
generate_category_container(i)
|
||||||
|
for j in setting_storage[i]:
|
||||||
|
var valuemod = setting_storage[i][j]["valueMod"]
|
||||||
|
var settertype = setting_storage[i][j]["setterType"]
|
||||||
|
generate_property_container(i, j, valuemod, settertype)
|
||||||
|
|
||||||
|
func generate_category_container(category):
|
||||||
|
var vboxContainer = VBoxContainer.new()
|
||||||
|
vboxContainer.name = category
|
||||||
|
var label = Label.new()
|
||||||
|
label.text = category + ":"
|
||||||
|
label.valign = Label.ALIGN_CENTER
|
||||||
|
vboxContainer.add_child(label)
|
||||||
|
var vboxPropertiesContainer = VBoxContainer.new()
|
||||||
|
vboxPropertiesContainer.name = "VBoxContainer"
|
||||||
|
vboxContainer.add_child(vboxPropertiesContainer)
|
||||||
|
get_node("ScrollContainer/VBoxContainer").add_child(vboxContainer)
|
||||||
|
|
||||||
|
func generate_property_container(category, node, propertyname, valuemod):
|
||||||
|
var hbox = HBoxContainer.new()
|
||||||
|
hbox.rect_min_size = Vector2(scroll_container.rect_size.x, 20)
|
||||||
|
hbox.name = propertyname
|
||||||
|
hbox.add_constant_override("separation", 0)
|
||||||
|
var label = Label.new()
|
||||||
|
label.rect_min_size = Vector2(scroll_container.rect_size.x / 2, 20)
|
||||||
|
label.text = propertyname.capitalize()
|
||||||
|
label.align = Label.ALIGN_CENTER
|
||||||
|
label.valign = Label.ALIGN_CENTER
|
||||||
|
var settertypenode
|
||||||
|
print(node, valuemod)
|
||||||
|
var get_value = node.get(valuemod)
|
||||||
|
match typeof(get_value):
|
||||||
|
TYPE_INT:
|
||||||
|
settertypenode = SpinBox.new()
|
||||||
|
settertypenode.max_value = 9999
|
||||||
|
settertypenode.value = get_value
|
||||||
|
settertypenode.connect("value_changed", self, "on_setting_changed", [node, valuemod, settertypenode, "value"])
|
||||||
|
pass
|
||||||
|
TYPE_REAL:
|
||||||
|
settertypenode = SpinBox.new()
|
||||||
|
settertypenode.max_value = 9999
|
||||||
|
settertypenode.value = get_value
|
||||||
|
settertypenode.connect("value_changed", self, "on_setting_changed", [node, valuemod, settertypenode, "value"])
|
||||||
|
pass
|
||||||
|
TYPE_COLOR:
|
||||||
|
settertypenode = ColorPickerButton.new()
|
||||||
|
settertypenode.color = get_value
|
||||||
|
settertypenode.connect("color_changed", self, "on_setting_changed", [node, valuemod, settertypenode, "color"])
|
||||||
|
pass
|
||||||
|
TYPE_VECTOR2:
|
||||||
|
pass
|
||||||
|
TYPE_BOOL:
|
||||||
|
settertypenode = CheckBox.new()
|
||||||
|
settertypenode.text = "On"
|
||||||
|
settertypenode.pressed = get_value
|
||||||
|
var styleboxflat = StyleBoxFlat.new()
|
||||||
|
styleboxflat.bg_color = Color(0.254902, 0.254902, 0.254902)
|
||||||
|
settertypenode.add_stylebox_override("normal", styleboxflat)
|
||||||
|
settertypenode.add_stylebox_override("hover", styleboxflat)
|
||||||
|
settertypenode.add_stylebox_override("pressed", styleboxflat)
|
||||||
|
settertypenode.connect("pressed", self, "on_setting_changed", [null, node, valuemod, settertypenode, "pressed"])
|
||||||
|
pass
|
||||||
|
# match settertype:
|
||||||
|
# "ColorPicker":
|
||||||
|
# settertypenode = ColorPickerButton.new()
|
||||||
|
# "CheckBox":
|
||||||
|
# settertypenode = CheckBox.new()
|
||||||
|
# settertypenode.text = "On"
|
||||||
|
# var styleboxflat = StyleBoxFlat.new()
|
||||||
|
# styleboxflat.bg_color = Color(0.254902, 0.254902, 0.254902)
|
||||||
|
# settertypenode.add_stylebox_override("normal", styleboxflat)
|
||||||
|
# settertypenode.add_stylebox_override("hover", styleboxflat)
|
||||||
|
# settertypenode.add_stylebox_override("pressed", styleboxflat)
|
||||||
|
# "SpinBox":
|
||||||
|
# settertypenode = SpinBox.new()
|
||||||
|
if settertypenode == null:
|
||||||
|
push_error("Setter type not found! Returning! DEBUG_INFO: %s | %s | %s" % [node, node.name, typeof(get_value)])
|
||||||
|
return
|
||||||
|
settertypenode.rect_min_size = Vector2(scroll_container.rect_size.x / 2, 20)
|
||||||
|
hbox.add_child(label)
|
||||||
|
hbox.add_child(settertypenode)
|
||||||
|
get_node("ScrollContainer/VBoxContainer/%s/VBoxContainer" % [category]).add_child(hbox)
|
||||||
|
|
||||||
|
func _on_Ok_pressed():
|
||||||
|
hide()
|
||||||
|
|
||||||
|
func on_setting_changed(default_signal, node, value_to_get, setter, value_setter_get):
|
||||||
|
var setter_new_value = setter.get(value_setter_get)
|
||||||
|
node.set(value_to_get, setter_new_value)
|
||||||
|
|
||||||
|
func _on_CanvasOutline_Enabled_value_changed(button_pressed):
|
||||||
|
canvas_outline.visible = button_pressed
|
||||||
|
|
||||||
|
func _on_CanvasOutline_Color_value_changed(color):
|
||||||
|
canvas_outline.color = color
|
||||||
|
|
||||||
|
func _on_CanvasOutline_SpinBox_value_changed(value):
|
||||||
|
canvas_outline.width = value
|
||||||
|
|
||||||
|
func _on_Grids_Grid1Color_value_changed(color):
|
||||||
|
visual_grid_1.color = color
|
||||||
|
|
||||||
|
func _on_Grids_Grid1Size_value_changed(value):
|
||||||
|
visual_grid_1.size = value
|
||||||
|
|
||||||
|
func _on_Grids_Grid2Color_value_changed(color):
|
||||||
|
visual_grid_2.color = color
|
||||||
|
|
||||||
|
func _on_Grids_Grid2Size_value_changed(value):
|
||||||
|
visual_grid_2.size = value
|
36
addons/graphics_editor/Dialogs/Settings.tscn
Normal file
36
addons/graphics_editor/Dialogs/Settings.tscn
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
[gd_scene load_steps=2 format=2]
|
||||||
|
|
||||||
|
[ext_resource path="res://addons/graphics_editor/Dialogs/Settings.gd" type="Script" id=1]
|
||||||
|
|
||||||
|
[node name="Settings" type="WindowDialog"]
|
||||||
|
visible = true
|
||||||
|
margin_top = 20.0
|
||||||
|
margin_right = 250.0
|
||||||
|
margin_bottom = 270.0
|
||||||
|
popup_exclusive = true
|
||||||
|
window_title = "Settings"
|
||||||
|
script = ExtResource( 1 )
|
||||||
|
|
||||||
|
[node name="Ok" type="Button" parent="."]
|
||||||
|
anchor_left = 1.0
|
||||||
|
anchor_top = 1.0
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
margin_left = -90.0
|
||||||
|
margin_top = -30.0
|
||||||
|
margin_right = -10.0
|
||||||
|
margin_bottom = -10.0
|
||||||
|
text = "Ok"
|
||||||
|
|
||||||
|
[node name="ScrollContainer" type="ScrollContainer" parent="."]
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
margin_right = -12.0
|
||||||
|
margin_bottom = -40.0
|
||||||
|
scroll_horizontal_enabled = false
|
||||||
|
|
||||||
|
[node name="VBoxContainer" type="VBoxContainer" parent="ScrollContainer"]
|
||||||
|
margin_right = 100.0
|
||||||
|
margin_bottom = 36.0
|
||||||
|
custom_constants/separation = 0
|
||||||
|
[connection signal="pressed" from="Ok" to="." method="_on_Ok_pressed"]
|
@ -133,11 +133,12 @@ var zoom_amount = 0.5
|
|||||||
func _input(event):
|
func _input(event):
|
||||||
if event is InputEventMouseButton:
|
if event is InputEventMouseButton:
|
||||||
if event.is_pressed():
|
if event.is_pressed():
|
||||||
if event.button_index == BUTTON_WHEEL_UP:
|
if paint_canvas_container_node.mouse_in_region and paint_canvas_container_node.mouse_on_top:
|
||||||
if camera.zoom - Vector2(zoom_amount, zoom_amount) > Vector2(0, 0):
|
if event.button_index == BUTTON_WHEEL_UP:
|
||||||
camera.zoom -= Vector2(zoom_amount, zoom_amount)
|
if camera.zoom - Vector2(zoom_amount, zoom_amount) > Vector2(0, 0):
|
||||||
elif event.button_index == BUTTON_WHEEL_DOWN:
|
camera.zoom -= Vector2(zoom_amount, zoom_amount)
|
||||||
camera.zoom += Vector2(zoom_amount, zoom_amount)
|
elif event.button_index == BUTTON_WHEEL_DOWN:
|
||||||
|
camera.zoom += Vector2(zoom_amount, zoom_amount)
|
||||||
|
|
||||||
func add_text_info_variables():
|
func add_text_info_variables():
|
||||||
textinfo.add_text_info("FPS")
|
textinfo.add_text_info("FPS")
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
[gd_scene load_steps=19 format=2]
|
[gd_scene load_steps=17 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://addons/graphics_editor/Editor.gd" type="Script" id=1]
|
[ext_resource path="res://addons/graphics_editor/Editor.gd" type="Script" id=1]
|
||||||
[ext_resource path="res://addons/graphics_editor/PaintCanvasContainer.gd" type="Script" id=2]
|
[ext_resource path="res://addons/graphics_editor/PaintCanvasContainer.gd" type="Script" id=2]
|
||||||
@ -11,12 +11,10 @@
|
|||||||
[ext_resource path="res://addons/graphics_editor/ColorPicker.gd" type="Script" id=9]
|
[ext_resource path="res://addons/graphics_editor/ColorPicker.gd" type="Script" id=9]
|
||||||
[ext_resource path="res://addons/graphics_editor/Layers.gd" type="Script" id=10]
|
[ext_resource path="res://addons/graphics_editor/Layers.gd" type="Script" id=10]
|
||||||
[ext_resource path="res://addons/graphics_editor/TextInfo.gd" type="Script" id=11]
|
[ext_resource path="res://addons/graphics_editor/TextInfo.gd" type="Script" id=11]
|
||||||
[ext_resource path="res://addons/graphics_editor/SaveFileDialog.gd" type="Script" id=12]
|
[ext_resource path="res://addons/graphics_editor/Dialogs.gd" type="Script" id=12]
|
||||||
[ext_resource path="res://addons/graphics_editor/Settings.tscn" type="PackedScene" id=13]
|
[ext_resource path="res://addons/graphics_editor/Dialogs/SaveFileDialog.gd" type="Script" id=13]
|
||||||
[ext_resource path="res://addons/graphics_editor/NewImage.tscn" type="PackedScene" id=14]
|
[ext_resource path="res://addons/graphics_editor/Dialogs/LoadFileDialog.gd" type="Script" id=14]
|
||||||
[ext_resource path="res://addons/graphics_editor/LoadFileDialog.gd" type="Script" id=15]
|
[ext_resource path="res://addons/graphics_editor/ToolManager.gd" type="Script" id=15]
|
||||||
[ext_resource path="res://addons/graphics_editor/ExpandCanvas.tscn" type="PackedScene" id=16]
|
|
||||||
[ext_resource path="res://addons/graphics_editor/ToolManager.gd" type="Script" id=17]
|
|
||||||
|
|
||||||
[sub_resource type="World" id=1]
|
[sub_resource type="World" id=1]
|
||||||
|
|
||||||
@ -31,6 +29,7 @@ __meta__ = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
[node name="PaintCanvasContainer" type="Control" parent="."]
|
[node name="PaintCanvasContainer" type="Control" parent="."]
|
||||||
|
editor/display_folded = true
|
||||||
show_behind_parent = true
|
show_behind_parent = true
|
||||||
anchor_right = 1.0
|
anchor_right = 1.0
|
||||||
anchor_bottom = 1.0
|
anchor_bottom = 1.0
|
||||||
@ -75,6 +74,10 @@ anchor_right = 0.0
|
|||||||
anchor_bottom = 0.0
|
anchor_bottom = 0.0
|
||||||
margin_right = 1600.0
|
margin_right = 1600.0
|
||||||
margin_bottom = 1600.0
|
margin_bottom = 1600.0
|
||||||
|
grid_size = 16
|
||||||
|
canvas_size = Vector2( 100, 100 )
|
||||||
|
chunk_size = Vector2( 10, 10 )
|
||||||
|
can_draw = true
|
||||||
|
|
||||||
[node name="PixelCursorHighlight" type="Control" parent="PaintCanvasContainer/ViewportContainer/Viewport/PaintCanvas"]
|
[node name="PixelCursorHighlight" type="Control" parent="PaintCanvasContainer/ViewportContainer/Viewport/PaintCanvas"]
|
||||||
anchor_right = 1.0
|
anchor_right = 1.0
|
||||||
@ -96,11 +99,16 @@ __meta__ = {
|
|||||||
[node name="VisualGrid" parent="PaintCanvasContainer/ViewportContainer/Viewport/PaintCanvas/Grids" instance=ExtResource( 6 )]
|
[node name="VisualGrid" parent="PaintCanvasContainer/ViewportContainer/Viewport/PaintCanvas/Grids" instance=ExtResource( 6 )]
|
||||||
mouse_filter = 2
|
mouse_filter = 2
|
||||||
color = Color( 0.639216, 0.639216, 0.639216, 1 )
|
color = Color( 0.639216, 0.639216, 0.639216, 1 )
|
||||||
|
size = 16
|
||||||
|
zoom = 0
|
||||||
|
offset = Vector2( 0, 0 )
|
||||||
|
|
||||||
[node name="VisualGrid2" parent="PaintCanvasContainer/ViewportContainer/Viewport/PaintCanvas/Grids" instance=ExtResource( 6 )]
|
[node name="VisualGrid2" parent="PaintCanvasContainer/ViewportContainer/Viewport/PaintCanvas/Grids" instance=ExtResource( 6 )]
|
||||||
mouse_filter = 2
|
mouse_filter = 2
|
||||||
color = Color( 1, 1, 1, 1 )
|
color = Color( 1, 1, 1, 1 )
|
||||||
size = 160.0
|
size = 160.0
|
||||||
|
zoom = 0
|
||||||
|
offset = Vector2( 0, 0 )
|
||||||
|
|
||||||
[node name="CanvasOutline" type="Control" parent="PaintCanvasContainer/ViewportContainer/Viewport/PaintCanvas"]
|
[node name="CanvasOutline" type="Control" parent="PaintCanvasContainer/ViewportContainer/Viewport/PaintCanvas"]
|
||||||
anchor_right = 1.0
|
anchor_right = 1.0
|
||||||
@ -114,6 +122,7 @@ color = Color( 0, 1, 0, 1 )
|
|||||||
width = 3.0
|
width = 3.0
|
||||||
|
|
||||||
[node name="Navbar" type="Control" parent="."]
|
[node name="Navbar" type="Control" parent="."]
|
||||||
|
editor/display_folded = true
|
||||||
anchor_right = 1.0
|
anchor_right = 1.0
|
||||||
margin_bottom = 20.0
|
margin_bottom = 20.0
|
||||||
script = ExtResource( 8 )
|
script = ExtResource( 8 )
|
||||||
@ -240,7 +249,16 @@ __meta__ = {
|
|||||||
"_edit_use_anchors_": false
|
"_edit_use_anchors_": false
|
||||||
}
|
}
|
||||||
|
|
||||||
[node name="SaveFileDialog" type="FileDialog" parent="."]
|
[node name="Dialogs" type="Control" parent="."]
|
||||||
|
anchor_right = 1.0
|
||||||
|
anchor_bottom = 1.0
|
||||||
|
mouse_filter = 2
|
||||||
|
script = ExtResource( 12 )
|
||||||
|
__meta__ = {
|
||||||
|
"_edit_lock_": true
|
||||||
|
}
|
||||||
|
|
||||||
|
[node name="SaveFileDialog" type="FileDialog" parent="Dialogs"]
|
||||||
anchor_left = 0.5
|
anchor_left = 0.5
|
||||||
anchor_top = 0.5
|
anchor_top = 0.5
|
||||||
anchor_right = 0.5
|
anchor_right = 0.5
|
||||||
@ -250,29 +268,9 @@ margin_top = -165.0
|
|||||||
margin_right = 340.0
|
margin_right = 340.0
|
||||||
margin_bottom = 165.0
|
margin_bottom = 165.0
|
||||||
filters = PoolStringArray( "*.png ; PNG Images" )
|
filters = PoolStringArray( "*.png ; PNG Images" )
|
||||||
script = ExtResource( 12 )
|
script = ExtResource( 13 )
|
||||||
|
|
||||||
[node name="Settings" parent="." instance=ExtResource( 13 )]
|
[node name="LoadFileDialog" type="FileDialog" parent="Dialogs"]
|
||||||
anchor_left = 0.5
|
|
||||||
anchor_top = 0.5
|
|
||||||
anchor_right = 0.5
|
|
||||||
anchor_bottom = 0.5
|
|
||||||
margin_left = -155.0
|
|
||||||
margin_top = -150.0
|
|
||||||
margin_right = 155.0
|
|
||||||
margin_bottom = 150.0
|
|
||||||
|
|
||||||
[node name="NewImage" parent="." instance=ExtResource( 14 )]
|
|
||||||
anchor_left = 0.5
|
|
||||||
anchor_top = 0.5
|
|
||||||
anchor_right = 0.5
|
|
||||||
anchor_bottom = 0.5
|
|
||||||
margin_left = -145.0
|
|
||||||
margin_top = -40.0
|
|
||||||
margin_right = 145.0
|
|
||||||
margin_bottom = 40.0
|
|
||||||
|
|
||||||
[node name="LoadFileDialog" type="FileDialog" parent="."]
|
|
||||||
anchor_left = 0.5
|
anchor_left = 0.5
|
||||||
anchor_top = 0.5
|
anchor_top = 0.5
|
||||||
anchor_right = 0.5
|
anchor_right = 0.5
|
||||||
@ -284,23 +282,13 @@ margin_bottom = 165.0
|
|||||||
window_title = "Open a File"
|
window_title = "Open a File"
|
||||||
mode = 0
|
mode = 0
|
||||||
filters = PoolStringArray( "*.png ; PNG Images" )
|
filters = PoolStringArray( "*.png ; PNG Images" )
|
||||||
script = ExtResource( 15 )
|
script = ExtResource( 14 )
|
||||||
__meta__ = {
|
__meta__ = {
|
||||||
"_edit_use_anchors_": false
|
"_edit_use_anchors_": false
|
||||||
}
|
}
|
||||||
|
|
||||||
[node name="ExpandCanvas" parent="." instance=ExtResource( 16 )]
|
|
||||||
anchor_left = 0.5
|
|
||||||
anchor_top = 0.5
|
|
||||||
anchor_right = 0.5
|
|
||||||
anchor_bottom = 0.5
|
|
||||||
margin_left = -145.0
|
|
||||||
margin_top = -40.0
|
|
||||||
margin_right = 145.0
|
|
||||||
margin_bottom = 40.0
|
|
||||||
|
|
||||||
[node name="ToolManager" type="Node" parent="."]
|
[node name="ToolManager" type="Node" parent="."]
|
||||||
script = ExtResource( 17 )
|
script = ExtResource( 15 )
|
||||||
[connection signal="mouse_entered" from="PaintCanvasContainer" to="PaintCanvasContainer" method="_on_PaintCanvasContainer_mouse_entered"]
|
[connection signal="mouse_entered" from="PaintCanvasContainer" to="PaintCanvasContainer" method="_on_PaintCanvasContainer_mouse_entered"]
|
||||||
[connection signal="mouse_exited" from="PaintCanvasContainer" to="PaintCanvasContainer" method="_on_PaintCanvasContainer_mouse_exited"]
|
[connection signal="mouse_exited" from="PaintCanvasContainer" to="PaintCanvasContainer" method="_on_PaintCanvasContainer_mouse_exited"]
|
||||||
[connection signal="pressed" from="ToolMenu/Buttons/PaintTool" to="." method="_on_PaintTool_pressed"]
|
[connection signal="pressed" from="ToolMenu/Buttons/PaintTool" to="." method="_on_PaintTool_pressed"]
|
||||||
@ -311,11 +299,11 @@ script = ExtResource( 17 )
|
|||||||
[connection signal="mouse_entered" from="ToolMenu/Buttons/ColorPicker" to="ToolMenu/Buttons/ColorPicker" method="_on_ColorPicker_mouse_entered"]
|
[connection signal="mouse_entered" from="ToolMenu/Buttons/ColorPicker" to="ToolMenu/Buttons/ColorPicker" method="_on_ColorPicker_mouse_entered"]
|
||||||
[connection signal="mouse_exited" from="ToolMenu/Buttons/ColorPicker" to="ToolMenu/Buttons/ColorPicker" method="_on_ColorPicker_mouse_exited"]
|
[connection signal="mouse_exited" from="ToolMenu/Buttons/ColorPicker" to="ToolMenu/Buttons/ColorPicker" method="_on_ColorPicker_mouse_exited"]
|
||||||
[connection signal="pressed" from="ToolMenu/Layers/Panel/AddLayer" to="ToolMenu/Layers" method="_on_AddLayer_pressed"]
|
[connection signal="pressed" from="ToolMenu/Layers/Panel/AddLayer" to="ToolMenu/Layers" method="_on_AddLayer_pressed"]
|
||||||
[connection signal="about_to_show" from="SaveFileDialog" to="SaveFileDialog" method="_on_SaveFileDialog_about_to_show"]
|
[connection signal="about_to_show" from="Dialogs/SaveFileDialog" to="Dialogs/SaveFileDialog" method="_on_SaveFileDialog_about_to_show"]
|
||||||
[connection signal="confirmed" from="SaveFileDialog" to="SaveFileDialog" method="_on_SaveFileDialog_confirmed"]
|
[connection signal="confirmed" from="Dialogs/SaveFileDialog" to="Dialogs/SaveFileDialog" method="_on_SaveFileDialog_confirmed"]
|
||||||
[connection signal="file_selected" from="SaveFileDialog" to="SaveFileDialog" method="_on_SaveFileDialog_file_selected"]
|
[connection signal="file_selected" from="Dialogs/SaveFileDialog" to="Dialogs/SaveFileDialog" method="_on_SaveFileDialog_file_selected"]
|
||||||
[connection signal="visibility_changed" from="SaveFileDialog" to="SaveFileDialog" method="_on_SaveFileDialog_visibility_changed"]
|
[connection signal="visibility_changed" from="Dialogs/SaveFileDialog" to="Dialogs/SaveFileDialog" method="_on_SaveFileDialog_visibility_changed"]
|
||||||
[connection signal="about_to_show" from="LoadFileDialog" to="LoadFileDialog" method="_on_LoadFileDialog_about_to_show"]
|
[connection signal="about_to_show" from="Dialogs/LoadFileDialog" to="Dialogs/LoadFileDialog" method="_on_LoadFileDialog_about_to_show"]
|
||||||
[connection signal="confirmed" from="LoadFileDialog" to="LoadFileDialog" method="_on_LoadFileDialog_confirmed"]
|
[connection signal="confirmed" from="Dialogs/LoadFileDialog" to="Dialogs/LoadFileDialog" method="_on_LoadFileDialog_confirmed"]
|
||||||
[connection signal="file_selected" from="LoadFileDialog" to="LoadFileDialog" method="_on_LoadFileDialog_file_selected"]
|
[connection signal="file_selected" from="Dialogs/LoadFileDialog" to="Dialogs/LoadFileDialog" method="_on_LoadFileDialog_file_selected"]
|
||||||
[connection signal="visibility_changed" from="LoadFileDialog" to="LoadFileDialog" method="_on_LoadFileDialog_visibility_changed"]
|
[connection signal="visibility_changed" from="Dialogs/LoadFileDialog" to="Dialogs/LoadFileDialog" method="_on_LoadFileDialog_visibility_changed"]
|
||||||
|
@ -14,6 +14,8 @@ var navbar_storage = {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
onready var dialogs = get_parent().get_node("Dialogs")
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
var x_to_add = 0
|
var x_to_add = 0
|
||||||
var menu_button_script = load("res://addons/graphics_editor/MenuButtonExtended.gd")
|
var menu_button_script = load("res://addons/graphics_editor/MenuButtonExtended.gd")
|
||||||
@ -44,16 +46,17 @@ func _ready():
|
|||||||
func button_pressed(button_name, button_item):
|
func button_pressed(button_name, button_item):
|
||||||
if button_name == "File":
|
if button_name == "File":
|
||||||
if button_item == "New":
|
if button_item == "New":
|
||||||
get_parent().get_node("NewImage").show()
|
dialogs.show_dialog("NewImage")
|
||||||
if button_item == "Load":
|
if button_item == "Load":
|
||||||
get_parent().get_node("LoadFileDialog").show()
|
dialogs.show_dialog("LoadFileDialog")
|
||||||
if button_item == "Save":
|
if button_item == "Save":
|
||||||
get_parent().get_node("SaveFileDialog").show()
|
dialogs.show_dialog("SaveFileDialog")
|
||||||
if button_item == "Quit":
|
if button_item == "Quit":
|
||||||
get_tree().quit()
|
get_tree().quit()
|
||||||
elif button_name == "Editor":
|
elif button_name == "Editor":
|
||||||
if button_item == "Settings":
|
if button_item == "Settings":
|
||||||
get_parent().get_node("Settings").show()
|
dialogs.show_dialog("Settings")
|
||||||
|
#get_parent().get_node("Settings").show()
|
||||||
elif button_item == "Toggle Grid":
|
elif button_item == "Toggle Grid":
|
||||||
var grids_node = get_parent().get_node("PaintCanvasContainer/ViewportContainer/Viewport/PaintCanvas/Grids")
|
var grids_node = get_parent().get_node("PaintCanvasContainer/ViewportContainer/Viewport/PaintCanvas/Grids")
|
||||||
grids_node.visible = !grids_node.visible
|
grids_node.visible = !grids_node.visible
|
||||||
@ -61,4 +64,4 @@ func button_pressed(button_name, button_item):
|
|||||||
get_parent().camera.position = Vector2(0, 0)
|
get_parent().camera.position = Vector2(0, 0)
|
||||||
elif button_name == "Image":
|
elif button_name == "Image":
|
||||||
if button_item == "Resize":
|
if button_item == "Resize":
|
||||||
get_parent().get_node("ExpandCanvas").show()
|
dialogs.show_dialog("ExpandCanvas")
|
@ -1,45 +0,0 @@
|
|||||||
tool
|
|
||||||
extends Control
|
|
||||||
|
|
||||||
#TODO: Make the settings auto generate!
|
|
||||||
|
|
||||||
onready var editor = get_parent()
|
|
||||||
onready var canvas_outline = get_parent().get_node("PaintCanvasContainer/ViewportContainer/Viewport/PaintCanvas/CanvasOutline")
|
|
||||||
onready var visual_grid_1 = get_parent().get_node("PaintCanvasContainer/ViewportContainer/Viewport/PaintCanvas/Grids/VisualGrid")
|
|
||||||
onready var visual_grid_2 = get_parent().get_node("PaintCanvasContainer/ViewportContainer/Viewport/PaintCanvas/Grids/VisualGrid2")
|
|
||||||
|
|
||||||
func _ready():
|
|
||||||
#CanvasOutline settings
|
|
||||||
get_node("CanvasOutline/Enabled/CheckButton").pressed = canvas_outline.visible
|
|
||||||
get_node("CanvasOutline/Color/ColorPickerButton").color = canvas_outline.color
|
|
||||||
get_node("CanvasOutline/Width/SpinBox").value = canvas_outline.width
|
|
||||||
|
|
||||||
#Grid settings
|
|
||||||
get_node("Grids/Grid1Color/ColorPickerButton").color = visual_grid_1.color
|
|
||||||
get_node("Grids/Grid1Size/SpinBox").value = visual_grid_1.size
|
|
||||||
get_node("Grids/Grid2Color/ColorPickerButton").color = visual_grid_2.color
|
|
||||||
get_node("Grids/Grid2Size/SpinBox").value = visual_grid_2.size
|
|
||||||
|
|
||||||
func _on_Ok_pressed():
|
|
||||||
hide()
|
|
||||||
|
|
||||||
func _on_CanvasOutline_Enabled_value_changed(button_pressed):
|
|
||||||
canvas_outline.visible = button_pressed
|
|
||||||
|
|
||||||
func _on_CanvasOutline_Color_value_changed(color):
|
|
||||||
canvas_outline.color = color
|
|
||||||
|
|
||||||
func _on_CanvasOutline_SpinBox_value_changed(value):
|
|
||||||
canvas_outline.width = value
|
|
||||||
|
|
||||||
func _on_Grids_Grid1Color_value_changed(color):
|
|
||||||
visual_grid_1.color = color
|
|
||||||
|
|
||||||
func _on_Grids_Grid1Size_value_changed(value):
|
|
||||||
visual_grid_1.size = value
|
|
||||||
|
|
||||||
func _on_Grids_Grid2Color_value_changed(color):
|
|
||||||
visual_grid_2.color = color
|
|
||||||
|
|
||||||
func _on_Grids_Grid2Size_value_changed(value):
|
|
||||||
visual_grid_2.size = value
|
|
@ -1,193 +0,0 @@
|
|||||||
[gd_scene load_steps=2 format=2]
|
|
||||||
|
|
||||||
[ext_resource path="res://addons/graphics_editor/Settings.gd" type="Script" id=1]
|
|
||||||
|
|
||||||
[node name="Settings" type="WindowDialog"]
|
|
||||||
margin_right = 310.0
|
|
||||||
margin_bottom = 300.0
|
|
||||||
window_title = "Settings"
|
|
||||||
script = ExtResource( 1 )
|
|
||||||
|
|
||||||
[node name="Ok" type="Button" parent="."]
|
|
||||||
margin_left = 220.0
|
|
||||||
margin_top = 270.0
|
|
||||||
margin_right = 300.0
|
|
||||||
margin_bottom = 290.0
|
|
||||||
text = "Ok"
|
|
||||||
|
|
||||||
[node name="CanvasOutline" type="Control" parent="."]
|
|
||||||
margin_left = 10.0
|
|
||||||
margin_top = 10.0
|
|
||||||
margin_right = 300.0
|
|
||||||
margin_bottom = 120.0
|
|
||||||
__meta__ = {
|
|
||||||
"_edit_group_": true
|
|
||||||
}
|
|
||||||
|
|
||||||
[node name="Label" type="Label" parent="CanvasOutline"]
|
|
||||||
margin_right = 100.0
|
|
||||||
margin_bottom = 14.0
|
|
||||||
text = "Canvas Outline:"
|
|
||||||
|
|
||||||
[node name="Enabled" type="Control" parent="CanvasOutline"]
|
|
||||||
margin_left = 10.0
|
|
||||||
margin_top = 20.0
|
|
||||||
margin_right = 290.0
|
|
||||||
margin_bottom = 40.0
|
|
||||||
|
|
||||||
[node name="Label" type="Label" parent="CanvasOutline/Enabled"]
|
|
||||||
margin_right = 130.0
|
|
||||||
margin_bottom = 20.0
|
|
||||||
text = "Enabled:"
|
|
||||||
valign = 1
|
|
||||||
|
|
||||||
[node name="CheckButton" type="CheckButton" parent="CanvasOutline/Enabled"]
|
|
||||||
margin_left = 210.0
|
|
||||||
margin_top = -10.0
|
|
||||||
margin_right = 286.0
|
|
||||||
margin_bottom = 30.0
|
|
||||||
pressed = true
|
|
||||||
|
|
||||||
[node name="Color" type="Control" parent="CanvasOutline"]
|
|
||||||
editor/display_folded = true
|
|
||||||
margin_left = 10.0
|
|
||||||
margin_top = 50.0
|
|
||||||
margin_right = 290.0
|
|
||||||
margin_bottom = 70.0
|
|
||||||
|
|
||||||
[node name="Label" type="Label" parent="CanvasOutline/Color"]
|
|
||||||
margin_right = 130.0
|
|
||||||
margin_bottom = 20.0
|
|
||||||
text = "Color:"
|
|
||||||
valign = 1
|
|
||||||
|
|
||||||
[node name="ColorPickerButton" type="ColorPickerButton" parent="CanvasOutline/Color"]
|
|
||||||
margin_left = 170.0
|
|
||||||
margin_right = 280.0
|
|
||||||
margin_bottom = 20.0
|
|
||||||
|
|
||||||
[node name="Width" type="Control" parent="CanvasOutline"]
|
|
||||||
margin_left = 10.0
|
|
||||||
margin_top = 80.0
|
|
||||||
margin_right = 290.0
|
|
||||||
margin_bottom = 100.0
|
|
||||||
|
|
||||||
[node name="Label" type="Label" parent="CanvasOutline/Width"]
|
|
||||||
margin_right = 130.0
|
|
||||||
margin_bottom = 20.0
|
|
||||||
rect_rotation = -0.00812905
|
|
||||||
text = "Width:"
|
|
||||||
valign = 1
|
|
||||||
|
|
||||||
[node name="SpinBox" type="SpinBox" parent="CanvasOutline/Width"]
|
|
||||||
margin_left = 210.0
|
|
||||||
margin_right = 284.0
|
|
||||||
margin_bottom = 24.0
|
|
||||||
max_value = 9999.0
|
|
||||||
allow_greater = true
|
|
||||||
allow_lesser = true
|
|
||||||
|
|
||||||
[node name="Grids" type="Control" parent="."]
|
|
||||||
margin_left = 10.0
|
|
||||||
margin_top = 120.0
|
|
||||||
margin_right = 300.0
|
|
||||||
margin_bottom = 260.0
|
|
||||||
|
|
||||||
[node name="Label" type="Label" parent="Grids"]
|
|
||||||
margin_right = 100.0
|
|
||||||
margin_bottom = 14.0
|
|
||||||
text = "Grids:"
|
|
||||||
|
|
||||||
[node name="Grid1Color" type="Control" parent="Grids"]
|
|
||||||
margin_left = 10.0
|
|
||||||
margin_top = 20.0
|
|
||||||
margin_right = 290.0
|
|
||||||
margin_bottom = 40.0
|
|
||||||
__meta__ = {
|
|
||||||
"_edit_group_": true
|
|
||||||
}
|
|
||||||
|
|
||||||
[node name="Label" type="Label" parent="Grids/Grid1Color"]
|
|
||||||
margin_right = 130.0
|
|
||||||
margin_bottom = 20.0
|
|
||||||
text = "Grid1 Color:"
|
|
||||||
valign = 1
|
|
||||||
|
|
||||||
[node name="ColorPickerButton" type="ColorPickerButton" parent="Grids/Grid1Color"]
|
|
||||||
margin_left = 170.0
|
|
||||||
margin_right = 280.0
|
|
||||||
margin_bottom = 20.0
|
|
||||||
|
|
||||||
[node name="Grid2Color" type="Control" parent="Grids"]
|
|
||||||
margin_left = 10.0
|
|
||||||
margin_top = 80.0
|
|
||||||
margin_right = 290.0
|
|
||||||
margin_bottom = 100.0
|
|
||||||
__meta__ = {
|
|
||||||
"_edit_group_": true
|
|
||||||
}
|
|
||||||
|
|
||||||
[node name="Label" type="Label" parent="Grids/Grid2Color"]
|
|
||||||
margin_right = 130.0
|
|
||||||
margin_bottom = 20.0
|
|
||||||
text = "Grid2 Color:"
|
|
||||||
valign = 1
|
|
||||||
|
|
||||||
[node name="ColorPickerButton" type="ColorPickerButton" parent="Grids/Grid2Color"]
|
|
||||||
margin_left = 170.0
|
|
||||||
margin_right = 280.0
|
|
||||||
margin_bottom = 20.0
|
|
||||||
|
|
||||||
[node name="Grid1Size" type="Control" parent="Grids"]
|
|
||||||
margin_left = 10.0
|
|
||||||
margin_top = 50.0
|
|
||||||
margin_right = 290.0
|
|
||||||
margin_bottom = 70.0
|
|
||||||
__meta__ = {
|
|
||||||
"_edit_group_": true
|
|
||||||
}
|
|
||||||
|
|
||||||
[node name="Label" type="Label" parent="Grids/Grid1Size"]
|
|
||||||
margin_right = 130.0
|
|
||||||
margin_bottom = 20.0
|
|
||||||
text = "Grid1 Size:"
|
|
||||||
valign = 1
|
|
||||||
|
|
||||||
[node name="SpinBox" type="SpinBox" parent="Grids/Grid1Size"]
|
|
||||||
margin_left = 210.0
|
|
||||||
margin_right = 284.0
|
|
||||||
margin_bottom = 24.0
|
|
||||||
max_value = 10000.0
|
|
||||||
allow_greater = true
|
|
||||||
allow_lesser = true
|
|
||||||
|
|
||||||
[node name="Grid2Size" type="Control" parent="Grids"]
|
|
||||||
margin_left = 10.0
|
|
||||||
margin_top = 110.0
|
|
||||||
margin_right = 290.0
|
|
||||||
margin_bottom = 130.0
|
|
||||||
__meta__ = {
|
|
||||||
"_edit_group_": true
|
|
||||||
}
|
|
||||||
|
|
||||||
[node name="Label" type="Label" parent="Grids/Grid2Size"]
|
|
||||||
margin_right = 130.0
|
|
||||||
margin_bottom = 20.0
|
|
||||||
text = "Grid2 Size:"
|
|
||||||
valign = 1
|
|
||||||
|
|
||||||
[node name="SpinBox" type="SpinBox" parent="Grids/Grid2Size"]
|
|
||||||
margin_left = 210.0
|
|
||||||
margin_right = 284.0
|
|
||||||
margin_bottom = 24.0
|
|
||||||
max_value = 10000.0
|
|
||||||
allow_greater = true
|
|
||||||
allow_lesser = true
|
|
||||||
[connection signal="pressed" from="Ok" to="." method="_on_Ok_pressed"]
|
|
||||||
[connection signal="toggled" from="CanvasOutline/Enabled/CheckButton" to="." method="_on_CanvasOutline_Enabled_value_changed"]
|
|
||||||
[connection signal="color_changed" from="CanvasOutline/Color/ColorPickerButton" to="." method="_on_CanvasOutline_Color_value_changed"]
|
|
||||||
[connection signal="value_changed" from="CanvasOutline/Width/SpinBox" to="." method="_on_CanvasOutline_SpinBox_value_changed"]
|
|
||||||
[connection signal="color_changed" from="Grids/Grid1Color/ColorPickerButton" to="." method="_on_Grids_Grid1Color_value_changed"]
|
|
||||||
[connection signal="color_changed" from="Grids/Grid2Color/ColorPickerButton" to="." method="_on_Grids_Grid2Color_value_changed"]
|
|
||||||
[connection signal="value_changed" from="Grids/Grid1Size/SpinBox" to="." method="_on_Grids_Grid1Size_value_changed"]
|
|
||||||
[connection signal="value_changed" from="Grids/Grid2Size/SpinBox" to="." method="_on_Grids_Grid2Size_value_changed"]
|
|
@ -1,6 +1,7 @@
|
|||||||
tool
|
tool
|
||||||
extends Node
|
extends Node
|
||||||
|
|
||||||
|
var util = preload("res://addons/graphics_editor/Util.gd")
|
||||||
var active_tool
|
var active_tool
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
@ -8,11 +9,9 @@ func _ready():
|
|||||||
|
|
||||||
func set_active_tool(tool_to_use):
|
func set_active_tool(tool_to_use):
|
||||||
var tool_manager_folder = get_script().resource_path.get_base_dir()
|
var tool_manager_folder = get_script().resource_path.get_base_dir()
|
||||||
var tool_scripts = get_files_from_path(tool_manager_folder.plus_file("Tools"))
|
var tool_scripts = util.get_files_from_path(tool_manager_folder.plus_file("Tools"))
|
||||||
for i in tool_scripts:
|
for i in tool_scripts:
|
||||||
var file_name_raw = i.get_file()
|
var file_name = util.get_file_name(i)
|
||||||
var file_extension = i.get_extension()
|
|
||||||
var file_name = file_name_raw.substr(0, file_name_raw.length()-(file_extension.length()+1))
|
|
||||||
if file_name == tool_to_use:
|
if file_name == tool_to_use:
|
||||||
var node = Node.new()
|
var node = Node.new()
|
||||||
node.name = file_name
|
node.name = file_name
|
||||||
|
@ -46,6 +46,24 @@ static func random_color_alt():
|
|||||||
static func get_line_string(file, number):
|
static func get_line_string(file, number):
|
||||||
return file.get_as_text().split("\n")[number - 1].strip_edges()
|
return file.get_as_text().split("\n")[number - 1].strip_edges()
|
||||||
|
|
||||||
|
static func get_file_name(path):
|
||||||
|
var file_name_raw = path.get_file()
|
||||||
|
var file_extension = path.get_extension()
|
||||||
|
var file_name = file_name_raw.substr(0, file_name_raw.length()-(file_extension.length()+1))
|
||||||
|
return file_name
|
||||||
|
|
||||||
|
static func get_files_from_path(path):
|
||||||
|
var file_array = PoolStringArray()
|
||||||
|
var dir = Directory.new()
|
||||||
|
if dir.open(path) == OK:
|
||||||
|
dir.list_dir_begin()
|
||||||
|
var file_name = dir.get_next()
|
||||||
|
while (file_name != ""):
|
||||||
|
if !dir.current_is_dir():
|
||||||
|
file_array.append(path.plus_file(file_name))
|
||||||
|
file_name = dir.get_next()
|
||||||
|
return file_array
|
||||||
|
|
||||||
static func printv(variable):
|
static func printv(variable):
|
||||||
var stack = get_stack()[get_stack().size() - 1]
|
var stack = get_stack()[get_stack().size() - 1]
|
||||||
var line = stack.line
|
var line = stack.line
|
||||||
|
Loading…
Reference in New Issue
Block a user