mirror of
https://github.com/Relintai/godot-resources-as-sheets-plugin.git
synced 2025-04-21 08:51:18 +02:00
Godot 4 port
This commit is contained in:
parent
3c3b16970f
commit
f8af56d15c
@ -1,14 +0,0 @@
|
||||
tool
|
||||
class_name ThemeIconButton
|
||||
extends Button
|
||||
|
||||
export var icon_name := "Node" setget _set_icon_name
|
||||
|
||||
|
||||
func _ready():
|
||||
_set_icon_name(icon_name)
|
||||
|
||||
|
||||
func _set_icon_name(v):
|
||||
icon_name = v
|
||||
icon = get_icon(v, "EditorIcons")
|
@ -1,21 +0,0 @@
|
||||
tool
|
||||
class_name ThemeStylebox
|
||||
extends Control
|
||||
|
||||
export var box_class := "EditorStyles" setget _set_box_class
|
||||
export var box_name := "Background" setget _set_box_name
|
||||
|
||||
|
||||
func _ready():
|
||||
_set_box_name(box_name)
|
||||
_set_box_class(box_class)
|
||||
|
||||
|
||||
func _set_box_name(v):
|
||||
box_name = v
|
||||
add_stylebox_override(box_name, get_stylebox(box_name, box_class))
|
||||
|
||||
|
||||
func _set_box_class(v):
|
||||
box_class = v
|
||||
add_stylebox_override(box_name, get_stylebox(box_name, box_class))
|
@ -1,646 +0,0 @@
|
||||
[gd_scene load_steps=17 format=2]
|
||||
|
||||
[ext_resource path="res://addons/resources_speadsheet_view/editor_view.gd" type="Script" id=1]
|
||||
[ext_resource path="res://addons/resources_speadsheet_view/typed_cells/cell_editor_string.gd" type="Script" id=2]
|
||||
[ext_resource path="res://addons/resources_speadsheet_view/typed_cells/cell_editor_color.gd" type="Script" id=3]
|
||||
[ext_resource path="res://addons/resources_speadsheet_view/editor_icon_button.gd" type="Script" id=4]
|
||||
[ext_resource path="res://addons/resources_speadsheet_view/typed_cells/cell_editor_bool.gd" type="Script" id=5]
|
||||
[ext_resource path="res://addons/resources_speadsheet_view/table_header.tscn" type="PackedScene" id=6]
|
||||
[ext_resource path="res://addons/resources_speadsheet_view/typed_editors/dock_color.tscn" type="PackedScene" id=7]
|
||||
[ext_resource path="res://addons/resources_speadsheet_view/typed_editors/dock_number.tscn" type="PackedScene" id=8]
|
||||
[ext_resource path="res://addons/resources_speadsheet_view/typed_cells/cell_editor_resource.gd" type="Script" id=9]
|
||||
[ext_resource path="res://addons/resources_speadsheet_view/typed_editors/dock_texture.tscn" type="PackedScene" id=10]
|
||||
[ext_resource path="res://addons/resources_speadsheet_view/typed_cells/cell_editor_array.gd" type="Script" id=11]
|
||||
[ext_resource path="res://addons/resources_speadsheet_view/typed_editors/dock_array.tscn" type="PackedScene" id=12]
|
||||
[ext_resource path="res://addons/resources_speadsheet_view/typed_cells/cell_editor_enum.gd" type="Script" id=13]
|
||||
[ext_resource path="res://addons/resources_speadsheet_view/settings_grid.gd" type="Script" id=14]
|
||||
|
||||
[sub_resource type="Image" id=3]
|
||||
data = {
|
||||
"data": PoolByteArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ),
|
||||
"format": "LumAlpha8",
|
||||
"height": 16,
|
||||
"mipmaps": false,
|
||||
"width": 16
|
||||
}
|
||||
|
||||
[sub_resource type="ImageTexture" id=2]
|
||||
flags = 4
|
||||
flags = 4
|
||||
image = SubResource( 3 )
|
||||
size = Vector2( 16, 16 )
|
||||
|
||||
[node name="Control" type="MarginContainer"]
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
focus_neighbour_left = NodePath(".")
|
||||
focus_neighbour_top = NodePath(".")
|
||||
focus_neighbour_right = NodePath(".")
|
||||
focus_neighbour_bottom = NodePath(".")
|
||||
focus_next = NodePath(".")
|
||||
focus_previous = NodePath(".")
|
||||
focus_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 3
|
||||
custom_constants/margin_right = 2
|
||||
custom_constants/margin_top = 2
|
||||
custom_constants/margin_left = 2
|
||||
custom_constants/margin_bottom = 2
|
||||
script = ExtResource( 1 )
|
||||
__meta__ = {
|
||||
"_edit_lock_": true
|
||||
}
|
||||
table_header_scene = ExtResource( 6 )
|
||||
cell_editor_classes = [ ExtResource( 13 ), ExtResource( 11 ), ExtResource( 3 ), ExtResource( 5 ), ExtResource( 9 ), ExtResource( 2 ) ]
|
||||
path_folder_path = NodePath("HeaderContentSplit/VBoxContainer/HBoxContainer/HBoxContainer/Path")
|
||||
path_recent_paths = NodePath("HeaderContentSplit/VBoxContainer/HBoxContainer/HBoxContainer2/RecentPaths")
|
||||
path_table_root = NodePath("HeaderContentSplit/MarginContainer/FooterContentSplit/Panel/Scroll/MarginContainer/TableGrid")
|
||||
path_property_editors = NodePath("HeaderContentSplit/MarginContainer/FooterContentSplit/Footer/PropertyEditors")
|
||||
path_columns = NodePath("HeaderContentSplit/VBoxContainer/Columns/Columns")
|
||||
|
||||
[node name="HeaderContentSplit" type="VBoxContainer" parent="."]
|
||||
margin_left = 2.0
|
||||
margin_top = 2.0
|
||||
margin_right = 1022.0
|
||||
margin_bottom = 598.0
|
||||
__meta__ = {
|
||||
"_edit_lock_": true
|
||||
}
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="HeaderContentSplit"]
|
||||
margin_right = 1020.0
|
||||
margin_bottom = 46.0
|
||||
custom_constants/separation = 2
|
||||
__meta__ = {
|
||||
"_edit_lock_": true
|
||||
}
|
||||
|
||||
[node name="HBoxContainer2" type="HBoxContainer" parent="HeaderContentSplit/VBoxContainer"]
|
||||
margin_right = 1020.0
|
||||
margin_bottom = 14.0
|
||||
|
||||
[node name="Label" type="Label" parent="HeaderContentSplit/VBoxContainer/HBoxContainer2"]
|
||||
margin_right = 91.0
|
||||
margin_bottom = 14.0
|
||||
text = "Folder Display"
|
||||
|
||||
[node name="HSeparator" type="HSeparator" parent="HeaderContentSplit/VBoxContainer/HBoxContainer2"]
|
||||
margin_left = 95.0
|
||||
margin_right = 1020.0
|
||||
margin_bottom = 14.0
|
||||
size_flags_horizontal = 3
|
||||
|
||||
[node name="HBoxContainer" type="HSplitContainer" parent="HeaderContentSplit/VBoxContainer"]
|
||||
margin_top = 16.0
|
||||
margin_right = 1020.0
|
||||
margin_bottom = 40.0
|
||||
split_offset = -249
|
||||
__meta__ = {
|
||||
"_edit_lock_": true
|
||||
}
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="HeaderContentSplit/VBoxContainer/HBoxContainer"]
|
||||
margin_right = 553.0
|
||||
margin_bottom = 24.0
|
||||
size_flags_horizontal = 3
|
||||
custom_constants/separation = 0
|
||||
__meta__ = {
|
||||
"_edit_lock_": true
|
||||
}
|
||||
|
||||
[node name="Label" type="Label" parent="HeaderContentSplit/VBoxContainer/HBoxContainer/HBoxContainer"]
|
||||
margin_top = 5.0
|
||||
margin_right = 107.0
|
||||
margin_bottom = 19.0
|
||||
text = "Resource Folder:"
|
||||
|
||||
[node name="Path" type="LineEdit" parent="HeaderContentSplit/VBoxContainer/HBoxContainer/HBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
margin_left = 107.0
|
||||
margin_right = 469.0
|
||||
margin_bottom = 24.0
|
||||
size_flags_horizontal = 3
|
||||
caret_blink = true
|
||||
caret_blink_speed = 0.5
|
||||
__meta__ = {
|
||||
"_edit_lock_": true
|
||||
}
|
||||
|
||||
[node name="SelectDir" type="Button" parent="HeaderContentSplit/VBoxContainer/HBoxContainer/HBoxContainer"]
|
||||
margin_left = 469.0
|
||||
margin_right = 497.0
|
||||
margin_bottom = 24.0
|
||||
hint_tooltip = "Open Folder"
|
||||
icon = SubResource( 2 )
|
||||
script = ExtResource( 4 )
|
||||
__meta__ = {
|
||||
"_edit_lock_": true
|
||||
}
|
||||
icon_name = "Folder"
|
||||
|
||||
[node name="Refresh" type="Button" parent="HeaderContentSplit/VBoxContainer/HBoxContainer/HBoxContainer"]
|
||||
margin_left = 497.0
|
||||
margin_right = 525.0
|
||||
margin_bottom = 24.0
|
||||
hint_tooltip = "Refresh"
|
||||
icon = SubResource( 2 )
|
||||
script = ExtResource( 4 )
|
||||
__meta__ = {
|
||||
"_edit_lock_": true
|
||||
}
|
||||
icon_name = "Refresh"
|
||||
|
||||
[node name="DeletePath" type="Button" parent="HeaderContentSplit/VBoxContainer/HBoxContainer/HBoxContainer"]
|
||||
margin_left = 525.0
|
||||
margin_right = 553.0
|
||||
margin_bottom = 24.0
|
||||
hint_tooltip = "Remove Path from Recent"
|
||||
icon = SubResource( 2 )
|
||||
script = ExtResource( 4 )
|
||||
__meta__ = {
|
||||
"_edit_lock_": true
|
||||
}
|
||||
icon_name = "Remove"
|
||||
|
||||
[node name="HBoxContainer2" type="HBoxContainer" parent="HeaderContentSplit/VBoxContainer/HBoxContainer"]
|
||||
margin_left = 565.0
|
||||
margin_right = 1020.0
|
||||
margin_bottom = 24.0
|
||||
|
||||
[node name="Label2" type="Label" parent="HeaderContentSplit/VBoxContainer/HBoxContainer/HBoxContainer2"]
|
||||
margin_top = 5.0
|
||||
margin_right = 87.0
|
||||
margin_bottom = 19.0
|
||||
text = "Open Recent:"
|
||||
__meta__ = {
|
||||
"_edit_lock_": true
|
||||
}
|
||||
|
||||
[node name="RecentPaths" type="OptionButton" parent="HeaderContentSplit/VBoxContainer/HBoxContainer/HBoxContainer2"]
|
||||
unique_name_in_owner = true
|
||||
margin_left = 91.0
|
||||
margin_right = 369.0
|
||||
margin_bottom = 24.0
|
||||
size_flags_horizontal = 3
|
||||
clip_text = true
|
||||
__meta__ = {
|
||||
"_edit_lock_": true
|
||||
}
|
||||
|
||||
[node name="Info" type="Button" parent="HeaderContentSplit/VBoxContainer/HBoxContainer/HBoxContainer2"]
|
||||
margin_left = 373.0
|
||||
margin_right = 423.0
|
||||
margin_bottom = 24.0
|
||||
text = "About"
|
||||
__meta__ = {
|
||||
"_edit_lock_": true
|
||||
}
|
||||
|
||||
[node name="Settings" type="Button" parent="HeaderContentSplit/VBoxContainer/HBoxContainer/HBoxContainer2"]
|
||||
margin_left = 427.0
|
||||
margin_right = 455.0
|
||||
margin_bottom = 24.0
|
||||
hint_tooltip = "Settings"
|
||||
icon = SubResource( 2 )
|
||||
script = ExtResource( 4 )
|
||||
icon_name = "GDScript"
|
||||
|
||||
[node name="Sep" type="Control" parent="HeaderContentSplit/VBoxContainer"]
|
||||
margin_top = 42.0
|
||||
margin_right = 1020.0
|
||||
margin_bottom = 42.0
|
||||
|
||||
[node name="Columns" type="Control" parent="HeaderContentSplit/VBoxContainer"]
|
||||
margin_top = 44.0
|
||||
margin_right = 1020.0
|
||||
margin_bottom = 44.0
|
||||
rect_clip_content = true
|
||||
|
||||
[node name="Columns" type="HBoxContainer" parent="HeaderContentSplit/VBoxContainer/Columns"]
|
||||
margin_right = 1020.0
|
||||
custom_constants/separation = 0
|
||||
|
||||
[node name="Sep2" type="Control" parent="HeaderContentSplit/VBoxContainer"]
|
||||
margin_top = 46.0
|
||||
margin_right = 1020.0
|
||||
margin_bottom = 46.0
|
||||
|
||||
[node name="MarginContainer" type="MarginContainer" parent="HeaderContentSplit"]
|
||||
margin_top = 50.0
|
||||
margin_right = 1020.0
|
||||
margin_bottom = 596.0
|
||||
mouse_filter = 2
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 3
|
||||
__meta__ = {
|
||||
"_edit_lock_": true
|
||||
}
|
||||
|
||||
[node name="FooterContentSplit" type="VBoxContainer" parent="HeaderContentSplit/MarginContainer"]
|
||||
margin_right = 1020.0
|
||||
margin_bottom = 546.0
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 3
|
||||
__meta__ = {
|
||||
"_edit_lock_": true
|
||||
}
|
||||
|
||||
[node name="Panel" type="MarginContainer" parent="HeaderContentSplit/MarginContainer/FooterContentSplit"]
|
||||
margin_right = 1020.0
|
||||
margin_bottom = 496.0
|
||||
mouse_filter = 2
|
||||
size_flags_vertical = 3
|
||||
__meta__ = {
|
||||
"_edit_lock_": true
|
||||
}
|
||||
|
||||
[node name="Panel" type="Panel" parent="HeaderContentSplit/MarginContainer/FooterContentSplit/Panel"]
|
||||
margin_right = 1020.0
|
||||
margin_bottom = 496.0
|
||||
__meta__ = {
|
||||
"_edit_lock_": true
|
||||
}
|
||||
|
||||
[node name="Scroll" type="ScrollContainer" parent="HeaderContentSplit/MarginContainer/FooterContentSplit/Panel"]
|
||||
margin_right = 1020.0
|
||||
margin_bottom = 496.0
|
||||
mouse_filter = 1
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 3
|
||||
__meta__ = {
|
||||
"_edit_lock_": true
|
||||
}
|
||||
|
||||
[node name="MarginContainer" type="MarginContainer" parent="HeaderContentSplit/MarginContainer/FooterContentSplit/Panel/Scroll"]
|
||||
margin_right = 5.65
|
||||
custom_constants/margin_right = 0
|
||||
custom_constants/margin_top = 0
|
||||
__meta__ = {
|
||||
"_edit_lock_": true
|
||||
}
|
||||
|
||||
[node name="TableGrid" type="GridContainer" parent="HeaderContentSplit/MarginContainer/FooterContentSplit/Panel/Scroll/MarginContainer"]
|
||||
margin_right = 5.65
|
||||
rect_min_size = Vector2( 5.65, 0 )
|
||||
custom_constants/vseparation = 0
|
||||
custom_constants/hseparation = 0
|
||||
__meta__ = {
|
||||
"_edit_lock_": true
|
||||
}
|
||||
|
||||
[node name="Label" type="Label" parent="HeaderContentSplit/MarginContainer/FooterContentSplit/Panel"]
|
||||
self_modulate = Color( 1, 1, 1, 0.498039 )
|
||||
margin_right = 1020.0
|
||||
margin_bottom = 496.0
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 3
|
||||
text = "No folder selected!
|
||||
Please select a folder to edit using the controls above.
|
||||
|
||||
Then, Shift+Click or Ctrl+Click cells to edit them using the keyboard,
|
||||
Inspector dock or this screen's bottom panels.
|
||||
|
||||
To find out keybindings available, open the \"About\" menu."
|
||||
align = 1
|
||||
valign = 1
|
||||
|
||||
[node name="Footer" type="VBoxContainer" parent="HeaderContentSplit/MarginContainer/FooterContentSplit"]
|
||||
margin_top = 500.0
|
||||
margin_right = 1020.0
|
||||
margin_bottom = 546.0
|
||||
__meta__ = {
|
||||
"_edit_lock_": true
|
||||
}
|
||||
|
||||
[node name="PropertyEditors" type="VBoxContainer" parent="HeaderContentSplit/MarginContainer/FooterContentSplit/Footer"]
|
||||
unique_name_in_owner = true
|
||||
margin_right = 1020.0
|
||||
|
||||
[node name="EditArray" parent="HeaderContentSplit/MarginContainer/FooterContentSplit/Footer/PropertyEditors" instance=ExtResource( 12 )]
|
||||
visible = false
|
||||
anchor_right = 0.0
|
||||
margin_right = 1020.0
|
||||
margin_bottom = 2.22834e+06
|
||||
|
||||
[node name="EditColor" parent="HeaderContentSplit/MarginContainer/FooterContentSplit/Footer/PropertyEditors" instance=ExtResource( 7 )]
|
||||
visible = false
|
||||
anchor_right = 0.0
|
||||
margin_right = 1020.0
|
||||
|
||||
[node name="EditNumber" parent="HeaderContentSplit/MarginContainer/FooterContentSplit/Footer/PropertyEditors" instance=ExtResource( 8 )]
|
||||
visible = false
|
||||
anchor_right = 0.0
|
||||
margin_right = 1020.0
|
||||
margin_bottom = 84.0
|
||||
|
||||
[node name="EditTexture" parent="HeaderContentSplit/MarginContainer/FooterContentSplit/Footer/PropertyEditors" instance=ExtResource( 10 )]
|
||||
visible = false
|
||||
anchor_right = 0.0
|
||||
margin_right = 1020.0
|
||||
margin_bottom = 84.0
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="HeaderContentSplit/MarginContainer/FooterContentSplit/Footer"]
|
||||
margin_top = 4.0
|
||||
margin_right = 1020.0
|
||||
margin_bottom = 18.0
|
||||
|
||||
[node name="Label" type="Label" parent="HeaderContentSplit/MarginContainer/FooterContentSplit/Footer/HBoxContainer"]
|
||||
margin_right = 183.0
|
||||
margin_bottom = 14.0
|
||||
text = "GDScript Search and Process"
|
||||
|
||||
[node name="HSeparator" type="HSeparator" parent="HeaderContentSplit/MarginContainer/FooterContentSplit/Footer/HBoxContainer"]
|
||||
margin_left = 187.0
|
||||
margin_right = 1020.0
|
||||
margin_bottom = 14.0
|
||||
size_flags_horizontal = 3
|
||||
|
||||
[node name="Search" type="HBoxContainer" parent="HeaderContentSplit/MarginContainer/FooterContentSplit/Footer"]
|
||||
margin_top = 22.0
|
||||
margin_right = 1020.0
|
||||
margin_bottom = 46.0
|
||||
|
||||
[node name="Label" type="Label" parent="HeaderContentSplit/MarginContainer/FooterContentSplit/Footer/Search"]
|
||||
margin_top = 5.0
|
||||
margin_right = 65.0
|
||||
margin_bottom = 19.0
|
||||
text = "Condition:"
|
||||
|
||||
[node name="Label2" type="Label" parent="HeaderContentSplit/MarginContainer/FooterContentSplit/Footer/Search"]
|
||||
margin_left = 69.0
|
||||
margin_top = 3.0
|
||||
margin_right = 87.0
|
||||
margin_bottom = 21.0
|
||||
rect_min_size = Vector2( 18, 18 )
|
||||
hint_tooltip = "Enter an expression. The table only show rows where the expression returns `true`.
|
||||
|
||||
You can use `res.<property_name>` to get a property, and `index` to get row number. Hit ENTER to run the search.
|
||||
|
||||
Try out these:
|
||||
- (res.number_property > 0 and res.number_property < 100)
|
||||
- (res.text_property != \"\")
|
||||
- (\"a\" in res.text_property)
|
||||
- (index < 5)"
|
||||
mouse_filter = 0
|
||||
mouse_default_cursor_shape = 16
|
||||
text = "(?)"
|
||||
align = 1
|
||||
|
||||
[node name="SearchCond" type="LineEdit" parent="HeaderContentSplit/MarginContainer/FooterContentSplit/Footer/Search"]
|
||||
margin_left = 91.0
|
||||
margin_right = 509.0
|
||||
margin_bottom = 24.0
|
||||
size_flags_horizontal = 3
|
||||
text = "true"
|
||||
|
||||
[node name="VSeparator" type="VSeparator" parent="HeaderContentSplit/MarginContainer/FooterContentSplit/Footer/Search"]
|
||||
margin_left = 513.0
|
||||
margin_right = 517.0
|
||||
margin_bottom = 24.0
|
||||
|
||||
[node name="Label3" type="Label" parent="HeaderContentSplit/MarginContainer/FooterContentSplit/Footer/Search"]
|
||||
margin_left = 521.0
|
||||
margin_top = 5.0
|
||||
margin_right = 575.0
|
||||
margin_bottom = 19.0
|
||||
text = "Process:"
|
||||
|
||||
[node name="Label4" type="Label" parent="HeaderContentSplit/MarginContainer/FooterContentSplit/Footer/Search"]
|
||||
margin_left = 579.0
|
||||
margin_top = 3.0
|
||||
margin_right = 597.0
|
||||
margin_bottom = 21.0
|
||||
rect_min_size = Vector2( 18, 18 )
|
||||
hint_tooltip = "Enter an expression. The values in selected cells will be replaced with calculated new values.
|
||||
|
||||
You can use `value` to get the cell's value, `res.<property_name>` to get a property, `row_index` to get row number
|
||||
and `cell_index` to get the cell's selection order. Hit ENTER to run the search.
|
||||
|
||||
These are some valid expressions:
|
||||
- (res.property1 + res.property2)
|
||||
- (res.property1.replace(\"old_string\", \"new_string\"))
|
||||
- (load(\"res://path/to_resource.tres\"))
|
||||
|
||||
Don't forget quotation marks on strings and str() on non-strings."
|
||||
mouse_filter = 0
|
||||
mouse_default_cursor_shape = 16
|
||||
text = "(?)"
|
||||
align = 1
|
||||
|
||||
[node name="ProcessExpr" type="LineEdit" parent="HeaderContentSplit/MarginContainer/FooterContentSplit/Footer/Search"]
|
||||
margin_left = 601.0
|
||||
margin_right = 1020.0
|
||||
margin_bottom = 24.0
|
||||
size_flags_horizontal = 3
|
||||
|
||||
[node name="Control" type="Control" parent="."]
|
||||
margin_left = 2.0
|
||||
margin_top = 2.0
|
||||
margin_right = 1022.0
|
||||
margin_bottom = 598.0
|
||||
mouse_filter = 2
|
||||
__meta__ = {
|
||||
"_edit_lock_": true
|
||||
}
|
||||
|
||||
[node name="FileDialog" type="FileDialog" parent="Control"]
|
||||
anchor_left = 0.5
|
||||
anchor_top = 0.5
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 0.5
|
||||
margin_left = -307.0
|
||||
margin_top = -192.0
|
||||
margin_right = 307.0
|
||||
margin_bottom = 192.0
|
||||
rect_min_size = Vector2( 150, 52.5 )
|
||||
window_title = "Open a Folder"
|
||||
mode_overrides_title = false
|
||||
mode = 2
|
||||
|
||||
[node name="Info" type="AcceptDialog" parent="Control"]
|
||||
anchor_left = 0.5
|
||||
anchor_top = 0.5
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 0.5
|
||||
margin_left = -320.0
|
||||
margin_top = -152.0
|
||||
margin_right = 320.0
|
||||
margin_bottom = 152.0
|
||||
window_title = "About"
|
||||
__meta__ = {
|
||||
"_edit_group_": true
|
||||
}
|
||||
|
||||
[node name="MarginContainer" type="MarginContainer" parent="Control/Info"]
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
margin_left = 8.0
|
||||
margin_top = 8.0
|
||||
margin_right = -8.0
|
||||
margin_bottom = -36.0
|
||||
|
||||
[node name="RichTextLabel" type="RichTextLabel" parent="Control/Info/MarginContainer"]
|
||||
margin_right = 624.0
|
||||
margin_bottom = 260.0
|
||||
bbcode_enabled = true
|
||||
bbcode_text = "[center]Edit Resources as Spreadsheet[/center]
|
||||
|
||||
\"Welp, it is what it sounds like!\"
|
||||
|
||||
Possible inputs:
|
||||
- [code]Ctrl + Click / Cmd + Click[/code] - Select multiple cells in one column
|
||||
- [code]Shift + Click[/code] - Select all cells between A and B in one column
|
||||
- [code]Left/Right[/code] - Move cursor along cell text
|
||||
- [code]Backspace/Delete[/code] - Erase text Left / Right from cursor
|
||||
- [code]Home/End[/code] - Move cursor to start/end of cell
|
||||
- [code]Ctrl + <move/erase> / Cmd + <move/erase>[/code] - Move through / Erase whole word
|
||||
- [code]Ctrl/Cmd + C/V[/code] - Copy cells / Paste text into cells
|
||||
- [code]Ctrl/Cmd + (Shift) + Z[/code] - The Savior
|
||||
If clipboard contains as many lines as there are cells selected, each line is pasted into a separate cell.
|
||||
|
||||
Made by Don Tnowe. 2022.
|
||||
[url]https://twitter.com/don_tnowe[/url]
|
||||
Issues and contribution:
|
||||
[url]https://github.com/don-tnowe/godot-resources-as-sheets-plugin[/url]"
|
||||
text = "Edit Resources as Spreadsheet
|
||||
|
||||
\"Welp, it is what it sounds like!\"
|
||||
|
||||
Possible inputs:
|
||||
- Ctrl + Click / Cmd + Click - Select multiple cells in one column
|
||||
- Shift + Click - Select all cells between A and B in one column
|
||||
- Left/Right - Move cursor along cell text
|
||||
- Backspace/Delete - Erase text Left / Right from cursor
|
||||
- Home/End - Move cursor to start/end of cell
|
||||
- Ctrl + <move/erase> / Cmd + <move/erase> - Move through / Erase whole word
|
||||
- Ctrl/Cmd + C/V - Copy cells / Paste text into cells
|
||||
- Ctrl/Cmd + (Shift) + Z - The Savior
|
||||
If clipboard contains as many lines as there are cells selected, each line is pasted into a separate cell.
|
||||
|
||||
Made by Don Tnowe. 2022.
|
||||
https://twitter.com/don_tnowe
|
||||
Issues and contribution:
|
||||
https://github.com/don-tnowe/godot-resources-as-sheets-plugin"
|
||||
|
||||
[node name="Settings" type="AcceptDialog" parent="Control"]
|
||||
anchor_left = 0.5
|
||||
anchor_top = 0.5
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 0.5
|
||||
margin_left = -235.0
|
||||
margin_top = -123.0
|
||||
margin_right = 185.0
|
||||
margin_bottom = 88.0
|
||||
window_title = "Settings"
|
||||
__meta__ = {
|
||||
"_edit_group_": true
|
||||
}
|
||||
|
||||
[node name="MarginContainer" type="ScrollContainer" parent="Control/Settings"]
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
margin_left = 8.0
|
||||
margin_top = 8.0
|
||||
margin_right = -8.0
|
||||
margin_bottom = -36.0
|
||||
scroll_horizontal_enabled = false
|
||||
|
||||
[node name="RichTextLabel" type="VBoxContainer" parent="Control/Settings/MarginContainer"]
|
||||
margin_right = 404.0
|
||||
margin_bottom = 167.0
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 3
|
||||
|
||||
[node name="GridContainer" type="GridContainer" parent="Control/Settings/MarginContainer/RichTextLabel"]
|
||||
margin_right = 404.0
|
||||
margin_bottom = 150.0
|
||||
columns = 2
|
||||
script = ExtResource( 14 )
|
||||
|
||||
[node name="Label" type="Label" parent="Control/Settings/MarginContainer/RichTextLabel/GridContainer"]
|
||||
margin_top = 5.0
|
||||
margin_right = 326.0
|
||||
margin_bottom = 19.0
|
||||
size_flags_horizontal = 3
|
||||
text = "Color-type cells style rows"
|
||||
|
||||
[node name="ColorRows" type="CheckBox" parent="Control/Settings/MarginContainer/RichTextLabel/GridContainer"]
|
||||
margin_left = 330.0
|
||||
margin_right = 404.0
|
||||
margin_bottom = 24.0
|
||||
pressed = true
|
||||
text = "Enable"
|
||||
|
||||
[node name="Label2" type="Label" parent="Control/Settings/MarginContainer/RichTextLabel/GridContainer"]
|
||||
margin_top = 33.0
|
||||
margin_right = 326.0
|
||||
margin_bottom = 47.0
|
||||
size_flags_horizontal = 3
|
||||
text = "Colored array elements"
|
||||
|
||||
[node name="ColorArrays" type="CheckBox" parent="Control/Settings/MarginContainer/RichTextLabel/GridContainer"]
|
||||
margin_left = 330.0
|
||||
margin_top = 28.0
|
||||
margin_right = 404.0
|
||||
margin_bottom = 52.0
|
||||
pressed = true
|
||||
text = "Enable"
|
||||
|
||||
[node name="Label3" type="Label" parent="Control/Settings/MarginContainer/RichTextLabel/GridContainer"]
|
||||
margin_top = 61.0
|
||||
margin_right = 326.0
|
||||
margin_bottom = 75.0
|
||||
size_flags_horizontal = 3
|
||||
text = "Array cell min width"
|
||||
|
||||
[node name="ArrayMinWidth" type="SpinBox" parent="Control/Settings/MarginContainer/RichTextLabel/GridContainer"]
|
||||
margin_left = 330.0
|
||||
margin_top = 56.0
|
||||
margin_right = 404.0
|
||||
margin_bottom = 80.0
|
||||
min_value = 32.0
|
||||
max_value = 512.0
|
||||
value = 128.0
|
||||
|
||||
[node name="Label4" type="Label" parent="Control/Settings/MarginContainer/RichTextLabel/GridContainer"]
|
||||
margin_top = 84.0
|
||||
margin_right = 326.0
|
||||
margin_bottom = 115.0
|
||||
size_flags_horizontal = 3
|
||||
text = "Clip header text (more compact view but header text wont be fully visible) (restart when switching)"
|
||||
autowrap = true
|
||||
|
||||
[node name="ClipHeaders" type="CheckBox" parent="Control/Settings/MarginContainer/RichTextLabel/GridContainer"]
|
||||
margin_left = 330.0
|
||||
margin_top = 84.0
|
||||
margin_right = 404.0
|
||||
margin_bottom = 115.0
|
||||
pressed = true
|
||||
text = "Enable"
|
||||
|
||||
[node name="Label5" type="Label" parent="Control/Settings/MarginContainer/RichTextLabel/GridContainer"]
|
||||
margin_top = 119.0
|
||||
margin_right = 326.0
|
||||
margin_bottom = 150.0
|
||||
size_flags_horizontal = 3
|
||||
text = "Duplicate arrays on edit (slower, but can be undone)"
|
||||
autowrap = true
|
||||
|
||||
[node name="DupeArrays" type="CheckBox" parent="Control/Settings/MarginContainer/RichTextLabel/GridContainer"]
|
||||
margin_left = 330.0
|
||||
margin_top = 119.0
|
||||
margin_right = 404.0
|
||||
margin_bottom = 150.0
|
||||
pressed = true
|
||||
text = "Enable"
|
||||
|
||||
[connection signal="text_entered" from="HeaderContentSplit/VBoxContainer/HBoxContainer/HBoxContainer/Path" to="." method="_on_Path_text_entered"]
|
||||
[connection signal="pressed" from="HeaderContentSplit/VBoxContainer/HBoxContainer/HBoxContainer/SelectDir" to="Control/FileDialog" method="popup_centered"]
|
||||
[connection signal="pressed" from="HeaderContentSplit/VBoxContainer/HBoxContainer/HBoxContainer/Refresh" to="." method="_on_Path_text_entered"]
|
||||
[connection signal="pressed" from="HeaderContentSplit/VBoxContainer/HBoxContainer/HBoxContainer/DeletePath" to="." method="remove_selected_path_from_recent"]
|
||||
[connection signal="item_selected" from="HeaderContentSplit/VBoxContainer/HBoxContainer/HBoxContainer2/RecentPaths" to="." method="_on_RecentPaths_item_selected"]
|
||||
[connection signal="pressed" from="HeaderContentSplit/VBoxContainer/HBoxContainer/HBoxContainer2/Info" to="Control/Info" method="popup_centered"]
|
||||
[connection signal="pressed" from="HeaderContentSplit/VBoxContainer/HBoxContainer/HBoxContainer2/Settings" to="Control/Settings" method="popup_centered"]
|
||||
[connection signal="text_entered" from="HeaderContentSplit/MarginContainer/FooterContentSplit/Footer/Search/SearchCond" to="." method="_on_SearchCond_text_entered"]
|
||||
[connection signal="text_entered" from="HeaderContentSplit/MarginContainer/FooterContentSplit/Footer/Search/ProcessExpr" to="." method="_on_ProcessExpr_text_entered"]
|
||||
[connection signal="dir_selected" from="Control/FileDialog" to="." method="_on_FileDialog_dir_selected"]
|
@ -1,41 +0,0 @@
|
||||
tool
|
||||
class_name SettingsGrid
|
||||
extends GridContainer
|
||||
|
||||
const SETTING_PREFIX = "addons/resources_spreadsheet_view/"
|
||||
|
||||
|
||||
func _ready():
|
||||
for x in get_children():
|
||||
var setting = SETTING_PREFIX + camel_case_to_snake_case(x.name)
|
||||
if x is BaseButton:
|
||||
x.connect("toggled", self, "_set_setting", [setting])
|
||||
if !ProjectSettings.has_setting(setting):
|
||||
call("_set_setting", x.pressed, setting)
|
||||
|
||||
else:
|
||||
x.pressed = ProjectSettings.get_setting(setting)
|
||||
|
||||
elif x is Range:
|
||||
x.connect("value_changed", self, "_set_setting", [setting])
|
||||
if !ProjectSettings.has_setting(setting):
|
||||
call("_set_setting", x.value, setting)
|
||||
|
||||
else:
|
||||
x.value = ProjectSettings.get_setting(setting)
|
||||
|
||||
|
||||
static func camel_case_to_snake_case(string : String) -> String:
|
||||
var i = 0
|
||||
while i < string.length():
|
||||
if string.ord_at(i) < 97:
|
||||
string = string.left(i) + ("_" if i > 0 else "") + string[i].to_lower() + string.substr(i + 1)
|
||||
i += 1
|
||||
|
||||
i += 1
|
||||
|
||||
return string
|
||||
|
||||
|
||||
func _set_setting(new_value, setting):
|
||||
ProjectSettings.set_setting(setting, new_value)
|
@ -1,23 +0,0 @@
|
||||
[gd_scene format=2]
|
||||
|
||||
[node name="Header" type="HBoxContainer"]
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
margin_right = -892.0
|
||||
margin_bottom = -580.0
|
||||
size_flags_horizontal = 3
|
||||
custom_constants/separation = 0
|
||||
|
||||
[node name="Button" type="Button" parent="."]
|
||||
margin_right = 102.0
|
||||
margin_bottom = 20.0
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 0
|
||||
text = "resource_name"
|
||||
clip_text = true
|
||||
|
||||
[node name="Label" type="Button" parent="."]
|
||||
margin_left = 102.0
|
||||
margin_right = 132.0
|
||||
margin_bottom = 20.0
|
||||
text = "|| "
|
@ -1,44 +0,0 @@
|
||||
[gd_scene load_steps=2 format=2]
|
||||
|
||||
[sub_resource type="DynamicFont" id=1]
|
||||
size = 8
|
||||
|
||||
[node name="Label" type="MarginContainer"]
|
||||
margin_right = 58.0
|
||||
margin_bottom = 14.0
|
||||
rect_min_size = Vector2( 128, 0 )
|
||||
size_flags_vertical = 9
|
||||
__meta__ = {
|
||||
"_edit_lock_": true
|
||||
}
|
||||
|
||||
[node name="Box" type="HFlowContainer" parent="."]
|
||||
margin_right = 128.0
|
||||
margin_bottom = 14.0
|
||||
mouse_filter = 2
|
||||
custom_constants/vseparation = 0
|
||||
custom_constants/hseparation = 0
|
||||
|
||||
[node name="Back" type="LineEdit" parent="."]
|
||||
show_behind_parent = true
|
||||
margin_right = 128.0
|
||||
margin_bottom = 14.0
|
||||
focus_mode = 0
|
||||
mouse_filter = 2
|
||||
custom_fonts/font = SubResource( 1 )
|
||||
editable = false
|
||||
expand_to_text_length = true
|
||||
context_menu_enabled = false
|
||||
virtual_keyboard_enabled = false
|
||||
caret_blink = true
|
||||
caret_blink_speed = 0.5
|
||||
__meta__ = {
|
||||
"_edit_lock_": true
|
||||
}
|
||||
|
||||
[node name="Selected" type="ColorRect" parent="."]
|
||||
visible = false
|
||||
margin_right = 128.0
|
||||
margin_bottom = 14.0
|
||||
mouse_filter = 2
|
||||
color = Color( 1, 1, 1, 0.247059 )
|
@ -1,38 +0,0 @@
|
||||
[gd_scene load_steps=2 format=2]
|
||||
|
||||
[sub_resource type="DynamicFont" id=1]
|
||||
size = 8
|
||||
|
||||
[node name="Label" type="Label"]
|
||||
margin_right = 58.0
|
||||
margin_bottom = 14.0
|
||||
rect_min_size = Vector2( 58, 0 )
|
||||
mouse_filter = 0
|
||||
size_flags_vertical = 9
|
||||
__meta__ = {
|
||||
"_edit_lock_": true
|
||||
}
|
||||
|
||||
[node name="Back" type="LineEdit" parent="."]
|
||||
show_behind_parent = true
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
focus_mode = 0
|
||||
mouse_filter = 2
|
||||
custom_fonts/font = SubResource( 1 )
|
||||
editable = false
|
||||
expand_to_text_length = true
|
||||
context_menu_enabled = false
|
||||
virtual_keyboard_enabled = false
|
||||
caret_blink = true
|
||||
caret_blink_speed = 0.5
|
||||
__meta__ = {
|
||||
"_edit_lock_": true
|
||||
}
|
||||
|
||||
[node name="Selected" type="ColorRect" parent="."]
|
||||
visible = false
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
mouse_filter = 2
|
||||
color = Color( 1, 1, 1, 0.247059 )
|
@ -1,32 +0,0 @@
|
||||
class_name CellEditor
|
||||
extends Reference
|
||||
|
||||
const CELL_SCENE_DIR = "res://addons/resources_speadsheet_view/typed_cells/"
|
||||
|
||||
var hint_strings_array := []
|
||||
|
||||
|
||||
# Override to define where the cell should be shown.
|
||||
func can_edit_value(value, type, property_hint) -> bool:
|
||||
return value != null
|
||||
|
||||
# Override to change how the cell is created; preload a scene or create nodes from code.
|
||||
# Caller is an instance of `editor_view.tscn`.
|
||||
func create_cell(caller : Control) -> Control:
|
||||
return load(CELL_SCENE_DIR + "basic.tscn").instance()
|
||||
|
||||
# Override to change behaviour when the cell is clicked to be selected.
|
||||
func set_selected(node : Control, selected : bool):
|
||||
node.get_node("Selected").visible = selected
|
||||
|
||||
# Override to change how the value is displayed.
|
||||
func set_value(node : Control, value):
|
||||
node.text = TextEditingUtils.show_non_typing(str(value))
|
||||
|
||||
# Override to prevent the cell from being edited as text.
|
||||
func is_text():
|
||||
return true
|
||||
|
||||
|
||||
func set_color(node : Control, color : Color):
|
||||
node.get_node("Back").modulate = color * 1.0
|
@ -1,30 +0,0 @@
|
||||
extends CellEditor
|
||||
|
||||
var _cached_color := Color.white
|
||||
|
||||
|
||||
func create_cell(caller : Control) -> Control:
|
||||
var node = load(CELL_SCENE_DIR + "basic.tscn").instance()
|
||||
var color = ColorRect.new()
|
||||
node.align = Label.ALIGN_RIGHT
|
||||
node.rect_min_size.x = 56
|
||||
node.add_child(color)
|
||||
color.name = "Color"
|
||||
color.anchor_bottom = 1.0
|
||||
color.rect_size = Vector2(8, 0)
|
||||
return node
|
||||
|
||||
|
||||
func can_edit_value(value, type, property_hint) -> bool:
|
||||
return type == TYPE_COLOR
|
||||
|
||||
|
||||
func set_value(node : Control, value):
|
||||
if value is String:
|
||||
node.text = TextEditingUtils.show_non_typing(str(value))
|
||||
|
||||
else:
|
||||
node.text = value.to_html(true)
|
||||
_cached_color = value
|
||||
|
||||
node.get_node("Color").color = value
|
@ -1,60 +0,0 @@
|
||||
[gd_scene load_steps=3 format=2]
|
||||
|
||||
[ext_resource path="res://icon.png" type="Texture" id=1]
|
||||
|
||||
[sub_resource type="DynamicFont" id=1]
|
||||
size = 8
|
||||
|
||||
[node name="Label" type="MarginContainer"]
|
||||
margin_right = 58.0
|
||||
margin_bottom = 14.0
|
||||
size_flags_vertical = 9
|
||||
__meta__ = {
|
||||
"_edit_lock_": true
|
||||
}
|
||||
|
||||
[node name="Back" type="LineEdit" parent="."]
|
||||
show_behind_parent = true
|
||||
margin_right = 85.0
|
||||
margin_bottom = 32.0
|
||||
focus_mode = 0
|
||||
mouse_filter = 2
|
||||
custom_fonts/font = SubResource( 1 )
|
||||
editable = false
|
||||
expand_to_text_length = true
|
||||
context_menu_enabled = false
|
||||
virtual_keyboard_enabled = false
|
||||
caret_blink = true
|
||||
caret_blink_speed = 0.5
|
||||
__meta__ = {
|
||||
"_edit_lock_": true
|
||||
}
|
||||
|
||||
[node name="Selected" type="ColorRect" parent="."]
|
||||
visible = false
|
||||
margin_right = 85.0
|
||||
margin_bottom = 32.0
|
||||
mouse_filter = 2
|
||||
color = Color( 1, 1, 1, 0.247059 )
|
||||
|
||||
[node name="Box" type="HBoxContainer" parent="."]
|
||||
margin_right = 85.0
|
||||
margin_bottom = 32.0
|
||||
|
||||
[node name="Tex" type="TextureRect" parent="Box"]
|
||||
margin_right = 32.0
|
||||
margin_bottom = 32.0
|
||||
rect_min_size = Vector2( 32, 32 )
|
||||
texture = ExtResource( 1 )
|
||||
expand = true
|
||||
stretch_mode = 6
|
||||
|
||||
[node name="Label" type="Label" parent="Box"]
|
||||
margin_left = 36.0
|
||||
margin_top = 9.0
|
||||
margin_right = 85.0
|
||||
margin_bottom = 23.0
|
||||
size_flags_horizontal = 3
|
||||
text = "res.tres"
|
||||
align = 1
|
||||
valign = 1
|
@ -1,222 +0,0 @@
|
||||
[gd_scene load_steps=5 format=2]
|
||||
|
||||
[ext_resource path="res://addons/resources_speadsheet_view/typed_editors/dock_array.gd" type="Script" id=1]
|
||||
[ext_resource path="res://addons/resources_speadsheet_view/editor_icon_button.gd" type="Script" id=2]
|
||||
|
||||
[sub_resource type="Image" id=3]
|
||||
data = {
|
||||
"data": PoolByteArray( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ),
|
||||
"format": "LumAlpha8",
|
||||
"height": 16,
|
||||
"mipmaps": false,
|
||||
"width": 16
|
||||
}
|
||||
|
||||
[sub_resource type="ImageTexture" id=2]
|
||||
flags = 4
|
||||
flags = 4
|
||||
image = SubResource( 3 )
|
||||
size = Vector2( 16, 16 )
|
||||
|
||||
[node name="EditArray" type="VBoxContainer"]
|
||||
anchor_right = 1.0
|
||||
margin_bottom = 62.0
|
||||
rect_pivot_offset = Vector2( -460, -28 )
|
||||
mouse_filter = 0
|
||||
script = ExtResource( 1 )
|
||||
|
||||
[node name="Header" type="HBoxContainer" parent="."]
|
||||
margin_right = 1024.0
|
||||
margin_bottom = 14.0
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="Header"]
|
||||
margin_right = 455.0
|
||||
margin_bottom = 14.0
|
||||
size_flags_horizontal = 3
|
||||
|
||||
[node name="Label" type="Label" parent="Header/HBoxContainer"]
|
||||
margin_right = 70.0
|
||||
margin_bottom = 14.0
|
||||
text = "EDIT: Array"
|
||||
|
||||
[node name="HSeparator" type="HSeparator" parent="Header/HBoxContainer"]
|
||||
margin_left = 74.0
|
||||
margin_right = 455.0
|
||||
margin_bottom = 14.0
|
||||
size_flags_horizontal = 3
|
||||
|
||||
[node name="Label" type="Label" parent="Header"]
|
||||
margin_left = 459.0
|
||||
margin_right = 565.0
|
||||
margin_bottom = 14.0
|
||||
text = "PROPERTY NAME"
|
||||
|
||||
[node name="HSeparator2" type="HSeparator" parent="Header"]
|
||||
margin_left = 569.0
|
||||
margin_right = 1024.0
|
||||
margin_bottom = 14.0
|
||||
size_flags_horizontal = 3
|
||||
|
||||
[node name="HBoxContainer" type="HSplitContainer" parent="."]
|
||||
margin_top = 18.0
|
||||
margin_right = 1024.0
|
||||
margin_bottom = 70.0
|
||||
split_offset = 192
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="HBoxContainer"]
|
||||
margin_right = 571.0
|
||||
margin_bottom = 52.0
|
||||
alignment = 2
|
||||
|
||||
[node name="Panel" type="MarginContainer" parent="HBoxContainer/HBoxContainer"]
|
||||
margin_right = 320.0
|
||||
margin_bottom = 52.0
|
||||
size_flags_horizontal = 3
|
||||
|
||||
[node name="Label" type="TextEdit" parent="HBoxContainer/HBoxContainer/Panel"]
|
||||
margin_right = 320.0
|
||||
margin_bottom = 52.0
|
||||
rect_min_size = Vector2( 128, 0 )
|
||||
size_flags_vertical = 5
|
||||
text = "[]"
|
||||
readonly = true
|
||||
|
||||
[node name="VSeparator2" type="VSeparator" parent="HBoxContainer/HBoxContainer"]
|
||||
margin_left = 324.0
|
||||
margin_right = 328.0
|
||||
margin_bottom = 52.0
|
||||
|
||||
[node name="Control" type="MarginContainer" parent="HBoxContainer/HBoxContainer"]
|
||||
margin_left = 332.0
|
||||
margin_right = 563.0
|
||||
margin_bottom = 52.0
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="HBoxContainer/HBoxContainer/Control"]
|
||||
margin_right = 231.0
|
||||
margin_bottom = 52.0
|
||||
|
||||
[node name="LineEdit" type="LineEdit" parent="HBoxContainer/HBoxContainer/Control/VBoxContainer"]
|
||||
margin_right = 231.0
|
||||
margin_bottom = 26.0
|
||||
rect_min_size = Vector2( 128, 0 )
|
||||
clear_button_enabled = true
|
||||
placeholder_text = "Input value to add/remove..."
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="HBoxContainer/HBoxContainer/Control/VBoxContainer"]
|
||||
margin_top = 30.0
|
||||
margin_right = 231.0
|
||||
margin_bottom = 52.0
|
||||
|
||||
[node name="Label" type="Label" parent="HBoxContainer/HBoxContainer/Control/VBoxContainer/HBoxContainer"]
|
||||
margin_top = 4.0
|
||||
margin_right = 29.0
|
||||
margin_bottom = 18.0
|
||||
text = "Add:"
|
||||
|
||||
[node name="String" type="Button" parent="HBoxContainer/HBoxContainer/Control/VBoxContainer/HBoxContainer"]
|
||||
margin_left = 33.0
|
||||
margin_right = 61.0
|
||||
margin_bottom = 22.0
|
||||
hint_tooltip = "Add String"
|
||||
icon = SubResource( 2 )
|
||||
script = ExtResource( 2 )
|
||||
icon_name = "String"
|
||||
|
||||
[node name="Int" type="Button" parent="HBoxContainer/HBoxContainer/Control/VBoxContainer/HBoxContainer"]
|
||||
margin_left = 65.0
|
||||
margin_right = 93.0
|
||||
margin_bottom = 22.0
|
||||
hint_tooltip = "Add Integer"
|
||||
icon = SubResource( 2 )
|
||||
script = ExtResource( 2 )
|
||||
icon_name = "int"
|
||||
|
||||
[node name="Float" type="Button" parent="HBoxContainer/HBoxContainer/Control/VBoxContainer/HBoxContainer"]
|
||||
margin_left = 97.0
|
||||
margin_right = 125.0
|
||||
margin_bottom = 22.0
|
||||
hint_tooltip = "Add Float"
|
||||
icon = SubResource( 2 )
|
||||
script = ExtResource( 2 )
|
||||
icon_name = "float"
|
||||
|
||||
[node name="Variant" type="Button" parent="HBoxContainer/HBoxContainer/Control/VBoxContainer/HBoxContainer"]
|
||||
margin_left = 129.0
|
||||
margin_right = 157.0
|
||||
margin_bottom = 22.0
|
||||
hint_tooltip = "Guess Type and Add"
|
||||
icon = SubResource( 2 )
|
||||
script = ExtResource( 2 )
|
||||
icon_name = "Variant"
|
||||
|
||||
[node name="Label2" type="Label" parent="HBoxContainer/HBoxContainer/Control/VBoxContainer/HBoxContainer"]
|
||||
margin_left = 161.0
|
||||
margin_top = 4.0
|
||||
margin_right = 199.0
|
||||
margin_bottom = 18.0
|
||||
text = "Erase:"
|
||||
|
||||
[node name="Remove" type="Button" parent="HBoxContainer/HBoxContainer/Control/VBoxContainer/HBoxContainer"]
|
||||
margin_left = 203.0
|
||||
margin_right = 231.0
|
||||
margin_bottom = 22.0
|
||||
hint_tooltip = "Erase Value from Array"
|
||||
icon = SubResource( 2 )
|
||||
script = ExtResource( 2 )
|
||||
icon_name = "Remove"
|
||||
|
||||
[node name="VSeparator" type="VSeparator" parent="HBoxContainer/HBoxContainer"]
|
||||
margin_left = 567.0
|
||||
margin_right = 571.0
|
||||
margin_bottom = 52.0
|
||||
|
||||
[node name="Control2" type="MarginContainer" parent="HBoxContainer"]
|
||||
margin_left = 583.0
|
||||
margin_right = 1024.0
|
||||
margin_bottom = 52.0
|
||||
size_flags_horizontal = 3
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="HBoxContainer/Control2"]
|
||||
margin_right = 441.0
|
||||
margin_bottom = 52.0
|
||||
alignment = 2
|
||||
|
||||
[node name="VSeparator2" type="VSeparator" parent="HBoxContainer/Control2/HBoxContainer"]
|
||||
margin_right = 4.0
|
||||
margin_bottom = 52.0
|
||||
|
||||
[node name="HFlowContainer" type="HFlowContainer" parent="HBoxContainer/Control2/HBoxContainer"]
|
||||
margin_left = 8.0
|
||||
margin_right = 441.0
|
||||
margin_bottom = 52.0
|
||||
size_flags_horizontal = 3
|
||||
|
||||
[node name="Label" type="Label" parent="HBoxContainer/Control2/HBoxContainer/HFlowContainer"]
|
||||
margin_top = 4.0
|
||||
margin_right = 48.0
|
||||
margin_bottom = 18.0
|
||||
text = "Recent:"
|
||||
|
||||
[node name="OptionButton" type="OptionButton" parent="HBoxContainer/Control2/HBoxContainer/HFlowContainer"]
|
||||
margin_left = 52.0
|
||||
margin_right = 106.0
|
||||
margin_bottom = 22.0
|
||||
text = "Add"
|
||||
items = [ "Add", null, false, 0, null, "Erase", null, false, 1, null, "Delete From Recent", null, false, 2, null ]
|
||||
selected = 0
|
||||
|
||||
[node name="AddRecentFromSel" type="Button" parent="HBoxContainer/Control2/HBoxContainer/HFlowContainer"]
|
||||
margin_left = 110.0
|
||||
margin_right = 138.0
|
||||
margin_bottom = 22.0
|
||||
hint_tooltip = "Copy Selection into this List"
|
||||
icon = SubResource( 2 )
|
||||
script = ExtResource( 2 )
|
||||
icon_name = "ListSelect"
|
||||
|
||||
[connection signal="pressed" from="HBoxContainer/HBoxContainer/Control/VBoxContainer/HBoxContainer/String" to="." method="_on_String_pressed"]
|
||||
[connection signal="pressed" from="HBoxContainer/HBoxContainer/Control/VBoxContainer/HBoxContainer/Int" to="." method="_on_Int_pressed"]
|
||||
[connection signal="pressed" from="HBoxContainer/HBoxContainer/Control/VBoxContainer/HBoxContainer/Float" to="." method="_on_Float_pressed"]
|
||||
[connection signal="pressed" from="HBoxContainer/HBoxContainer/Control/VBoxContainer/HBoxContainer/Variant" to="." method="_on_Variant_pressed"]
|
||||
[connection signal="pressed" from="HBoxContainer/HBoxContainer/Control/VBoxContainer/HBoxContainer/Remove" to="." method="_on_Remove_pressed"]
|
||||
[connection signal="pressed" from="HBoxContainer/Control2/HBoxContainer/HFlowContainer/AddRecentFromSel" to="." method="_on_AddRecentFromSel_pressed"]
|
@ -1,424 +0,0 @@
|
||||
[gd_scene load_steps=2 format=2]
|
||||
|
||||
[ext_resource path="res://addons/resources_speadsheet_view/typed_editors/dock_color.gd" type="Script" id=1]
|
||||
|
||||
[node name="EditColor" type="VBoxContainer"]
|
||||
anchor_right = 1.0
|
||||
margin_bottom = 86.0
|
||||
rect_pivot_offset = Vector2( -460, -28 )
|
||||
mouse_filter = 0
|
||||
script = ExtResource( 1 )
|
||||
|
||||
[node name="Header" type="HBoxContainer" parent="."]
|
||||
margin_right = 1024.0
|
||||
margin_bottom = 14.0
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="Header"]
|
||||
margin_right = 455.0
|
||||
margin_bottom = 14.0
|
||||
size_flags_horizontal = 3
|
||||
|
||||
[node name="Label" type="Label" parent="Header/HBoxContainer"]
|
||||
margin_right = 70.0
|
||||
margin_bottom = 14.0
|
||||
text = "EDIT: Color"
|
||||
|
||||
[node name="HSeparator" type="HSeparator" parent="Header/HBoxContainer"]
|
||||
margin_left = 74.0
|
||||
margin_right = 455.0
|
||||
margin_bottom = 14.0
|
||||
size_flags_horizontal = 3
|
||||
|
||||
[node name="Label" type="Label" parent="Header"]
|
||||
margin_left = 459.0
|
||||
margin_right = 565.0
|
||||
margin_bottom = 14.0
|
||||
text = "PROPERTY NAME"
|
||||
|
||||
[node name="HSeparator2" type="HSeparator" parent="Header"]
|
||||
margin_left = 569.0
|
||||
margin_right = 1024.0
|
||||
margin_bottom = 14.0
|
||||
size_flags_horizontal = 3
|
||||
|
||||
[node name="EditColor" type="HBoxContainer" parent="."]
|
||||
margin_top = 18.0
|
||||
margin_right = 1024.0
|
||||
margin_bottom = 86.0
|
||||
alignment = 1
|
||||
|
||||
[node name="VSeparator7" type="Control" parent="EditColor"]
|
||||
margin_right = 172.0
|
||||
margin_bottom = 68.0
|
||||
rect_min_size = Vector2( 16, 0 )
|
||||
size_flags_horizontal = 3
|
||||
|
||||
[node name="VSeparator3" type="Control" parent="EditColor"]
|
||||
visible = false
|
||||
margin_right = 16.0
|
||||
margin_bottom = 68.0
|
||||
rect_min_size = Vector2( 16, 0 )
|
||||
|
||||
[node name="ButtonRowTemplate" type="Control" parent="EditColor"]
|
||||
visible = false
|
||||
margin_left = 20.0
|
||||
margin_right = 20.0
|
||||
margin_bottom = 42.0
|
||||
|
||||
[node name="Button3" type="Button" parent="EditColor/ButtonRowTemplate"]
|
||||
margin_right = 25.0
|
||||
margin_bottom = 20.0
|
||||
text = "-X"
|
||||
|
||||
[node name="Button2" type="Button" parent="EditColor/ButtonRowTemplate"]
|
||||
margin_left = 29.0
|
||||
margin_right = 54.0
|
||||
margin_bottom = 20.0
|
||||
text = "-5"
|
||||
|
||||
[node name="Label" type="Label" parent="EditColor/ButtonRowTemplate"]
|
||||
margin_left = 87.0
|
||||
margin_top = 3.0
|
||||
margin_right = 111.0
|
||||
margin_bottom = 17.0
|
||||
text = "Red"
|
||||
align = 1
|
||||
|
||||
[node name="Button5" type="Button" parent="EditColor/ButtonRowTemplate"]
|
||||
margin_left = 147.0
|
||||
margin_right = 175.0
|
||||
margin_bottom = 20.0
|
||||
text = "+5"
|
||||
|
||||
[node name="Button6" type="Button" parent="EditColor/ButtonRowTemplate"]
|
||||
margin_left = 179.0
|
||||
margin_right = 207.0
|
||||
margin_bottom = 20.0
|
||||
text = "+X"
|
||||
|
||||
[node name="RGBGrid" type="GridContainer" parent="EditColor"]
|
||||
margin_left = 176.0
|
||||
margin_right = 353.0
|
||||
margin_bottom = 68.0
|
||||
columns = 5
|
||||
|
||||
[node name="Button3" type="Button" parent="EditColor/RGBGrid"]
|
||||
modulate = Color( 1, 0.780392, 0.780392, 1 )
|
||||
margin_right = 25.0
|
||||
margin_bottom = 20.0
|
||||
text = "-X"
|
||||
|
||||
[node name="Button2" type="Button" parent="EditColor/RGBGrid"]
|
||||
modulate = Color( 1, 0.780392, 0.780392, 1 )
|
||||
margin_left = 29.0
|
||||
margin_right = 62.0
|
||||
margin_bottom = 20.0
|
||||
text = "-10"
|
||||
|
||||
[node name="Label" type="Label" parent="EditColor/RGBGrid"]
|
||||
margin_left = 66.0
|
||||
margin_top = 3.0
|
||||
margin_right = 105.0
|
||||
margin_bottom = 17.0
|
||||
text = "Red"
|
||||
align = 1
|
||||
|
||||
[node name="Button5" type="Button" parent="EditColor/RGBGrid"]
|
||||
modulate = Color( 1, 0.780392, 0.780392, 1 )
|
||||
margin_left = 109.0
|
||||
margin_right = 145.0
|
||||
margin_bottom = 20.0
|
||||
text = "+10"
|
||||
|
||||
[node name="Button6" type="Button" parent="EditColor/RGBGrid"]
|
||||
modulate = Color( 1, 0.780392, 0.780392, 1 )
|
||||
margin_left = 149.0
|
||||
margin_right = 177.0
|
||||
margin_bottom = 20.0
|
||||
text = "+X"
|
||||
|
||||
[node name="Button7" type="Button" parent="EditColor/RGBGrid"]
|
||||
modulate = Color( 0.666667, 1, 0.745098, 1 )
|
||||
margin_top = 24.0
|
||||
margin_right = 25.0
|
||||
margin_bottom = 44.0
|
||||
text = "-X"
|
||||
|
||||
[node name="Button8" type="Button" parent="EditColor/RGBGrid"]
|
||||
modulate = Color( 0.666667, 1, 0.745098, 1 )
|
||||
margin_left = 29.0
|
||||
margin_top = 24.0
|
||||
margin_right = 62.0
|
||||
margin_bottom = 44.0
|
||||
text = "-10"
|
||||
|
||||
[node name="Label2" type="Label" parent="EditColor/RGBGrid"]
|
||||
margin_left = 66.0
|
||||
margin_top = 27.0
|
||||
margin_right = 105.0
|
||||
margin_bottom = 41.0
|
||||
text = "Green"
|
||||
align = 1
|
||||
|
||||
[node name="Button11" type="Button" parent="EditColor/RGBGrid"]
|
||||
modulate = Color( 0.666667, 1, 0.745098, 1 )
|
||||
margin_left = 109.0
|
||||
margin_top = 24.0
|
||||
margin_right = 145.0
|
||||
margin_bottom = 44.0
|
||||
text = "+10"
|
||||
|
||||
[node name="Button12" type="Button" parent="EditColor/RGBGrid"]
|
||||
modulate = Color( 0.666667, 1, 0.745098, 1 )
|
||||
margin_left = 149.0
|
||||
margin_top = 24.0
|
||||
margin_right = 177.0
|
||||
margin_bottom = 44.0
|
||||
text = "+X"
|
||||
|
||||
[node name="Button13" type="Button" parent="EditColor/RGBGrid"]
|
||||
modulate = Color( 0.772549, 0.792157, 1, 1 )
|
||||
margin_top = 48.0
|
||||
margin_right = 25.0
|
||||
margin_bottom = 68.0
|
||||
text = "-X"
|
||||
|
||||
[node name="Button14" type="Button" parent="EditColor/RGBGrid"]
|
||||
modulate = Color( 0.772549, 0.792157, 1, 1 )
|
||||
margin_left = 29.0
|
||||
margin_top = 48.0
|
||||
margin_right = 62.0
|
||||
margin_bottom = 68.0
|
||||
text = "-10"
|
||||
|
||||
[node name="Label3" type="Label" parent="EditColor/RGBGrid"]
|
||||
margin_left = 66.0
|
||||
margin_top = 51.0
|
||||
margin_right = 105.0
|
||||
margin_bottom = 65.0
|
||||
text = "Blue"
|
||||
align = 1
|
||||
|
||||
[node name="Button17" type="Button" parent="EditColor/RGBGrid"]
|
||||
modulate = Color( 0.772549, 0.792157, 1, 1 )
|
||||
margin_left = 109.0
|
||||
margin_top = 48.0
|
||||
margin_right = 145.0
|
||||
margin_bottom = 68.0
|
||||
text = "+10"
|
||||
|
||||
[node name="Button18" type="Button" parent="EditColor/RGBGrid"]
|
||||
modulate = Color( 0.772549, 0.792157, 1, 1 )
|
||||
margin_left = 149.0
|
||||
margin_top = 48.0
|
||||
margin_right = 177.0
|
||||
margin_bottom = 68.0
|
||||
text = "+X"
|
||||
|
||||
[node name="VSeparator" type="VSeparator" parent="EditColor"]
|
||||
margin_left = 357.0
|
||||
margin_right = 361.0
|
||||
margin_bottom = 68.0
|
||||
|
||||
[node name="ColorProper" type="VBoxContainer" parent="EditColor"]
|
||||
margin_left = 365.0
|
||||
margin_right = 461.0
|
||||
margin_bottom = 68.0
|
||||
|
||||
[node name="ColorRect" type="ColorRect" parent="EditColor/ColorProper"]
|
||||
margin_right = 96.0
|
||||
margin_bottom = 44.0
|
||||
size_flags_vertical = 3
|
||||
|
||||
[node name="Button" type="Button" parent="EditColor/ColorProper"]
|
||||
margin_top = 48.0
|
||||
margin_right = 96.0
|
||||
margin_bottom = 68.0
|
||||
text = "Choose Color"
|
||||
|
||||
[node name="VSeparator2" type="VSeparator" parent="EditColor"]
|
||||
margin_left = 465.0
|
||||
margin_right = 469.0
|
||||
margin_bottom = 68.0
|
||||
|
||||
[node name="HSVGrid" type="GridContainer" parent="EditColor"]
|
||||
margin_left = 473.0
|
||||
margin_right = 646.0
|
||||
margin_bottom = 68.0
|
||||
columns = 5
|
||||
|
||||
[node name="Button3" type="Button" parent="EditColor/HSVGrid"]
|
||||
modulate = Color( 1, 0.913725, 0.776471, 1 )
|
||||
margin_right = 25.0
|
||||
margin_bottom = 20.0
|
||||
text = "-X"
|
||||
|
||||
[node name="Button2" type="Button" parent="EditColor/HSVGrid"]
|
||||
modulate = Color( 0.898039, 1, 0.698039, 1 )
|
||||
margin_left = 29.0
|
||||
margin_right = 62.0
|
||||
margin_bottom = 20.0
|
||||
text = "-10"
|
||||
|
||||
[node name="Label" type="Label" parent="EditColor/HSVGrid"]
|
||||
margin_left = 66.0
|
||||
margin_top = 3.0
|
||||
margin_right = 101.0
|
||||
margin_bottom = 17.0
|
||||
text = "Hue"
|
||||
align = 1
|
||||
|
||||
[node name="Button5" type="Button" parent="EditColor/HSVGrid"]
|
||||
modulate = Color( 0.717647, 1, 0.980392, 1 )
|
||||
margin_left = 105.0
|
||||
margin_right = 141.0
|
||||
margin_bottom = 20.0
|
||||
text = "+10"
|
||||
|
||||
[node name="Button6" type="Button" parent="EditColor/HSVGrid"]
|
||||
modulate = Color( 0.74902, 0.729412, 1, 1 )
|
||||
margin_left = 145.0
|
||||
margin_right = 173.0
|
||||
margin_bottom = 20.0
|
||||
text = "+X"
|
||||
|
||||
[node name="Button7" type="Button" parent="EditColor/HSVGrid"]
|
||||
margin_top = 24.0
|
||||
margin_right = 25.0
|
||||
margin_bottom = 44.0
|
||||
text = "-X"
|
||||
|
||||
[node name="Button8" type="Button" parent="EditColor/HSVGrid"]
|
||||
margin_left = 29.0
|
||||
margin_top = 24.0
|
||||
margin_right = 62.0
|
||||
margin_bottom = 44.0
|
||||
text = "-5"
|
||||
|
||||
[node name="Label2" type="Label" parent="EditColor/HSVGrid"]
|
||||
margin_left = 66.0
|
||||
margin_top = 27.0
|
||||
margin_right = 101.0
|
||||
margin_bottom = 41.0
|
||||
text = "Sat"
|
||||
align = 1
|
||||
|
||||
[node name="Button11" type="Button" parent="EditColor/HSVGrid"]
|
||||
margin_left = 105.0
|
||||
margin_top = 24.0
|
||||
margin_right = 141.0
|
||||
margin_bottom = 44.0
|
||||
text = "+5"
|
||||
|
||||
[node name="Button12" type="Button" parent="EditColor/HSVGrid"]
|
||||
margin_left = 145.0
|
||||
margin_top = 24.0
|
||||
margin_right = 173.0
|
||||
margin_bottom = 44.0
|
||||
text = "+X"
|
||||
|
||||
[node name="Button13" type="Button" parent="EditColor/HSVGrid"]
|
||||
margin_top = 48.0
|
||||
margin_right = 25.0
|
||||
margin_bottom = 68.0
|
||||
text = "-X"
|
||||
|
||||
[node name="Button14" type="Button" parent="EditColor/HSVGrid"]
|
||||
margin_left = 29.0
|
||||
margin_top = 48.0
|
||||
margin_right = 62.0
|
||||
margin_bottom = 68.0
|
||||
text = "-5"
|
||||
|
||||
[node name="Label3" type="Label" parent="EditColor/HSVGrid"]
|
||||
margin_left = 66.0
|
||||
margin_top = 51.0
|
||||
margin_right = 101.0
|
||||
margin_bottom = 65.0
|
||||
text = "Value"
|
||||
align = 1
|
||||
|
||||
[node name="Button17" type="Button" parent="EditColor/HSVGrid"]
|
||||
margin_left = 105.0
|
||||
margin_top = 48.0
|
||||
margin_right = 141.0
|
||||
margin_bottom = 68.0
|
||||
text = "+5"
|
||||
|
||||
[node name="Button18" type="Button" parent="EditColor/HSVGrid"]
|
||||
margin_left = 145.0
|
||||
margin_top = 48.0
|
||||
margin_right = 173.0
|
||||
margin_bottom = 68.0
|
||||
text = "+X"
|
||||
|
||||
[node name="VSeparator4" type="VSeparator" parent="EditColor"]
|
||||
margin_left = 650.0
|
||||
margin_right = 654.0
|
||||
margin_bottom = 68.0
|
||||
|
||||
[node name="CustomX" type="VBoxContainer" parent="EditColor"]
|
||||
margin_left = 658.0
|
||||
margin_right = 848.0
|
||||
margin_bottom = 68.0
|
||||
|
||||
[node name="Label" type="Label" parent="EditColor/CustomX"]
|
||||
margin_top = 13.0
|
||||
margin_right = 190.0
|
||||
margin_bottom = 27.0
|
||||
size_flags_vertical = 6
|
||||
text = "Custom Value (for +X buttons)"
|
||||
|
||||
[node name="LineEdit" type="LineEdit" parent="EditColor/CustomX"]
|
||||
margin_top = 44.0
|
||||
margin_right = 190.0
|
||||
margin_bottom = 68.0
|
||||
text = "20"
|
||||
|
||||
[node name="VSeparator6" type="Control" parent="EditColor"]
|
||||
margin_left = 852.0
|
||||
margin_right = 1024.0
|
||||
margin_bottom = 68.0
|
||||
rect_min_size = Vector2( 16, 0 )
|
||||
size_flags_horizontal = 3
|
||||
|
||||
[node name="Panel" type="PanelContainer" parent="EditColor/VSeparator6"]
|
||||
visible = false
|
||||
anchor_top = 1.0
|
||||
anchor_bottom = 1.0
|
||||
margin_left = -601.0
|
||||
margin_top = -504.0
|
||||
margin_right = -278.0
|
||||
|
||||
[node name="Panel2" type="Panel" parent="EditColor/VSeparator6/Panel"]
|
||||
self_modulate = Color( 1.5, 1.5, 1.5, 1 )
|
||||
margin_left = 7.0
|
||||
margin_top = 7.0
|
||||
margin_right = 316.0
|
||||
margin_bottom = 497.0
|
||||
|
||||
[node name="MarginContainer" type="MarginContainer" parent="EditColor/VSeparator6/Panel"]
|
||||
margin_left = 7.0
|
||||
margin_top = 7.0
|
||||
margin_right = 316.0
|
||||
margin_bottom = 497.0
|
||||
custom_constants/margin_right = 4
|
||||
custom_constants/margin_top = 4
|
||||
custom_constants/margin_left = 4
|
||||
custom_constants/margin_bottom = 4
|
||||
|
||||
[node name="ColorPicker" type="ColorPicker" parent="EditColor/VSeparator6/Panel/MarginContainer"]
|
||||
margin_left = 4.0
|
||||
margin_top = 4.0
|
||||
margin_right = 305.0
|
||||
margin_bottom = 486.0
|
||||
|
||||
[node name="Button" type="Button" parent="EditColor/VSeparator6/Panel/MarginContainer/ColorPicker"]
|
||||
margin_top = 462.0
|
||||
margin_right = 301.0
|
||||
margin_bottom = 482.0
|
||||
text = "OK"
|
||||
|
||||
[connection signal="pressed" from="EditColor/ColorProper/Button" to="." method="_on_Button_pressed"]
|
||||
[connection signal="gui_input" from="EditColor/VSeparator6/Panel/MarginContainer/ColorPicker" to="." method="_on_ColorPicker_gui_input"]
|
||||
[connection signal="pressed" from="EditColor/VSeparator6/Panel/MarginContainer/ColorPicker/Button" to="." method="_on_Button_pressed"]
|
@ -1,108 +0,0 @@
|
||||
[gd_scene load_steps=3 format=2]
|
||||
|
||||
[ext_resource path="res://addons/resources_speadsheet_view/typed_editors/dock_texture.gd" type="Script" id=1]
|
||||
[ext_resource path="res://icon.png" type="Texture" id=2]
|
||||
|
||||
[node name="EditTexture" type="VBoxContainer"]
|
||||
anchor_right = 1.0
|
||||
margin_bottom = 86.0
|
||||
rect_pivot_offset = Vector2( -460, -28 )
|
||||
mouse_filter = 0
|
||||
script = ExtResource( 1 )
|
||||
|
||||
[node name="Header" type="HBoxContainer" parent="."]
|
||||
margin_right = 1024.0
|
||||
margin_bottom = 14.0
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="Header"]
|
||||
margin_right = 455.0
|
||||
margin_bottom = 14.0
|
||||
size_flags_horizontal = 3
|
||||
|
||||
[node name="Label" type="Label" parent="Header/HBoxContainer"]
|
||||
margin_right = 85.0
|
||||
margin_bottom = 14.0
|
||||
text = "EDIT: Texture"
|
||||
|
||||
[node name="HSeparator" type="HSeparator" parent="Header/HBoxContainer"]
|
||||
margin_left = 89.0
|
||||
margin_right = 455.0
|
||||
margin_bottom = 14.0
|
||||
size_flags_horizontal = 3
|
||||
|
||||
[node name="Label" type="Label" parent="Header"]
|
||||
margin_left = 459.0
|
||||
margin_right = 565.0
|
||||
margin_bottom = 14.0
|
||||
text = "PROPERTY NAME"
|
||||
|
||||
[node name="HSeparator2" type="HSeparator" parent="Header"]
|
||||
margin_left = 569.0
|
||||
margin_right = 1024.0
|
||||
margin_bottom = 14.0
|
||||
size_flags_horizontal = 3
|
||||
|
||||
[node name="CenterContainer" type="CenterContainer" parent="."]
|
||||
margin_top = 18.0
|
||||
margin_right = 1024.0
|
||||
margin_bottom = 84.0
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="CenterContainer"]
|
||||
margin_left = 384.0
|
||||
margin_right = 640.0
|
||||
margin_bottom = 66.0
|
||||
alignment = 1
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="CenterContainer/HBoxContainer"]
|
||||
margin_right = 48.0
|
||||
margin_bottom = 66.0
|
||||
rect_min_size = Vector2( 48, 48 )
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 3
|
||||
texture = ExtResource( 2 )
|
||||
expand = true
|
||||
stretch_mode = 6
|
||||
|
||||
[node name="VSeparator" type="VSeparator" parent="CenterContainer/HBoxContainer"]
|
||||
margin_left = 52.0
|
||||
margin_right = 56.0
|
||||
margin_bottom = 66.0
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="CenterContainer/HBoxContainer"]
|
||||
margin_left = 60.0
|
||||
margin_right = 256.0
|
||||
margin_bottom = 66.0
|
||||
|
||||
[node name="Label" type="Label" parent="CenterContainer/HBoxContainer/VBoxContainer"]
|
||||
margin_right = 196.0
|
||||
margin_bottom = 14.0
|
||||
text = "Atlas Chopper"
|
||||
align = 1
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="CenterContainer/HBoxContainer/VBoxContainer"]
|
||||
margin_top = 18.0
|
||||
margin_right = 196.0
|
||||
margin_bottom = 42.0
|
||||
|
||||
[node name="LineEdit" type="LineEdit" parent="CenterContainer/HBoxContainer/VBoxContainer/HBoxContainer"]
|
||||
margin_right = 96.0
|
||||
margin_bottom = 24.0
|
||||
rect_min_size = Vector2( 96, 0 )
|
||||
size_flags_horizontal = 3
|
||||
placeholder_text = "H Count"
|
||||
|
||||
[node name="LineEdit2" type="LineEdit" parent="CenterContainer/HBoxContainer/VBoxContainer/HBoxContainer"]
|
||||
margin_left = 100.0
|
||||
margin_right = 196.0
|
||||
margin_bottom = 24.0
|
||||
rect_min_size = Vector2( 96, 0 )
|
||||
size_flags_horizontal = 3
|
||||
placeholder_text = "V Count"
|
||||
|
||||
[node name="Button" type="Button" parent="CenterContainer/HBoxContainer/VBoxContainer"]
|
||||
margin_top = 46.0
|
||||
margin_right = 196.0
|
||||
margin_bottom = 66.0
|
||||
text = "Chop chop chop!!!"
|
||||
|
||||
[connection signal="pressed" from="CenterContainer/HBoxContainer/VBoxContainer/Button" to="." method="_on_Button_pressed"]
|
7
addons/resources_spreadsheet_view/editor_color_setter.gd
Normal file
7
addons/resources_spreadsheet_view/editor_color_setter.gd
Normal file
@ -0,0 +1,7 @@
|
||||
@tool
|
||||
class_name ThemeColorSetter
|
||||
extends Control
|
||||
|
||||
|
||||
func _ready():
|
||||
modulate = get_theme_color("accent_color", "Editor")
|
12
addons/resources_spreadsheet_view/editor_icon_button.gd
Normal file
12
addons/resources_spreadsheet_view/editor_icon_button.gd
Normal file
@ -0,0 +1,12 @@
|
||||
@tool
|
||||
class_name ThemeIconButton
|
||||
extends Button
|
||||
|
||||
@export var icon_name := "Node" :
|
||||
set(v):
|
||||
icon_name = v
|
||||
icon = get_theme_icon(v, "EditorIcons")
|
||||
|
||||
|
||||
func _ready():
|
||||
self.icon_name = (icon_name)
|
@ -0,0 +1,21 @@
|
||||
@tool
|
||||
class_name ThemeStylebox
|
||||
extends Control
|
||||
|
||||
@export var box_class := "EditorStyles"
|
||||
@export var box_name := "Background"
|
||||
|
||||
|
||||
func _ready():
|
||||
_set_box_name(box_name)
|
||||
_set_box_class(box_class)
|
||||
|
||||
|
||||
func _set_box_name(v):
|
||||
box_name = v
|
||||
add_theme_stylebox_override(box_name, get_theme_stylebox(box_name, box_class))
|
||||
|
||||
|
||||
func _set_box_class(v):
|
||||
box_class = v
|
||||
add_theme_stylebox_override(box_name, get_theme_stylebox(box_name, box_class))
|
@ -1,15 +1,15 @@
|
||||
tool
|
||||
@tool
|
||||
extends Control
|
||||
|
||||
export var table_header_scene : PackedScene
|
||||
@export var table_header_scene : PackedScene
|
||||
|
||||
export(Array, Script) var cell_editor_classes := []
|
||||
@export var cell_editor_classes : Array[Script] = []
|
||||
|
||||
export var path_folder_path := NodePath("")
|
||||
export var path_recent_paths := NodePath("")
|
||||
export var path_table_root := NodePath("")
|
||||
export var path_property_editors := NodePath("")
|
||||
export var path_columns := NodePath("")
|
||||
@export @onready var node_folder_path : LineEdit = $"HeaderContentSplit/VBoxContainer/HBoxContainer/HBoxContainer/Path"
|
||||
@export @onready var node_recent_paths : OptionButton = $"HeaderContentSplit/VBoxContainer/HBoxContainer/HBoxContainer2/RecentPaths"
|
||||
@export @onready var node_table_root : GridContainer = $"HeaderContentSplit/MarginContainer/FooterContentSplit/Panel/Scroll/MarginContainer/TableGrid"
|
||||
@export @onready var node_property_editors : VBoxContainer = $"HeaderContentSplit/MarginContainer/FooterContentSplit/Footer/PropertyEditors"
|
||||
@export @onready var node_columns : HBoxContainer = $"HeaderContentSplit/VBoxContainer/Columns/Columns"
|
||||
|
||||
var editor_interface : EditorInterface
|
||||
var editor_plugin : EditorPlugin
|
||||
@ -35,16 +35,16 @@ var edited_cells := []
|
||||
var edited_cells_text := []
|
||||
var edit_cursor_positions := []
|
||||
var inspector_resource : Resource
|
||||
var search_cond : Reference
|
||||
var search_cond : RefCounted
|
||||
var my_undo_redo : UndoRedo
|
||||
|
||||
|
||||
func _ready():
|
||||
get_node(path_recent_paths).clear()
|
||||
editor_plugin.get_undo_redo().connect("version_changed", self, "_on_undo_redo_version_changed")
|
||||
editor_interface.get_resource_filesystem()\
|
||||
.connect("filesystem_changed", self, "_on_filesystem_changed")
|
||||
editor_interface.get_inspector()\
|
||||
.connect("property_edited", self, "_on_inspector_property_edited")
|
||||
node_recent_paths.clear()
|
||||
my_undo_redo = editor_plugin.get_undo_redo().get_history_undo_redo(editor_plugin.get_undo_redo().get_object_history_id(self))
|
||||
my_undo_redo.version_changed.connect(_on_undo_redo_version_changed)
|
||||
editor_interface.get_resource_filesystem().filesystem_changed.connect(_on_filesystem_changed)
|
||||
editor_interface.get_inspector().property_edited.connect(_on_inspector_property_edited)
|
||||
|
||||
# Load saved recent paths
|
||||
var file := File.new()
|
||||
@ -52,7 +52,7 @@ func _ready():
|
||||
file.open(save_data_path, File.READ)
|
||||
|
||||
var as_text = file.get_as_text()
|
||||
var as_var = str2var(as_text)
|
||||
var as_var = JSON.parse_string(as_text)
|
||||
for x in as_var["recent_paths"]:
|
||||
add_path_to_recent(x, true)
|
||||
|
||||
@ -60,8 +60,9 @@ func _ready():
|
||||
for x in cell_editor_classes:
|
||||
all_cell_editors.append(x.new())
|
||||
all_cell_editors[all_cell_editors.size() - 1].hint_strings_array = column_hints
|
||||
|
||||
display_folder(recent_paths[0], "resource_name", false, true)
|
||||
|
||||
if recent_paths.size() > 0:
|
||||
display_folder(recent_paths[0], "resource_name", false, true)
|
||||
|
||||
|
||||
func _on_undo_redo_version_changed():
|
||||
@ -93,12 +94,12 @@ func display_folder(folderpath : String, sort_by : String = "", sort_reverse : b
|
||||
_load_resources_from_folder(folderpath, sort_by, sort_reverse)
|
||||
if columns.size() == 0: return
|
||||
|
||||
get_node(path_folder_path).text = folderpath
|
||||
node_folder_path.text = folderpath
|
||||
_create_table(force_rebuild or current_path != folderpath)
|
||||
_apply_search_cond()
|
||||
current_path = folderpath
|
||||
yield(get_tree(), "idle_frame")
|
||||
if get_node(path_table_root).get_child_count() == 0:
|
||||
await get_tree().process_frame
|
||||
if node_table_root.get_child_count() == 0:
|
||||
display_folder(folderpath, sort_by, sort_reverse, force_rebuild)
|
||||
|
||||
|
||||
@ -161,7 +162,7 @@ func _compare_values(a, b) -> bool:
|
||||
if a is Resource:
|
||||
return a.resource_path > b.resource_path
|
||||
|
||||
if a is Array or a is PoolStringArray or a is PoolRealArray or a is PoolIntArray:
|
||||
if a is Array:
|
||||
return a.size() > b.size()
|
||||
|
||||
return a > b
|
||||
@ -174,32 +175,37 @@ func _set_sorting(sort_by):
|
||||
sorting_by = sort_by
|
||||
|
||||
|
||||
func _select_column(column_name):
|
||||
deselect_all_cells()
|
||||
select_cell(node_table_root.get_child(columns.find(column_name)))
|
||||
select_cells_to(node_table_root.get_child(columns.find(column_name) + columns.size() * (rows.size() - 1)))
|
||||
|
||||
|
||||
func _create_table(columns_changed : bool):
|
||||
var root_node = get_node(path_table_root)
|
||||
var headers_node = get_node(path_columns)
|
||||
deselect_all_cells()
|
||||
edited_cells = []
|
||||
edited_cells_text = []
|
||||
edit_cursor_positions = []
|
||||
var new_node : Control
|
||||
if columns_changed:
|
||||
root_node.columns = columns.size()
|
||||
for x in root_node.get_children():
|
||||
node_table_root.columns = columns.size()
|
||||
for x in node_table_root.get_children():
|
||||
x.queue_free()
|
||||
|
||||
for x in headers_node.get_children():
|
||||
for x in node_columns.get_children():
|
||||
x.queue_free()
|
||||
|
||||
for x in columns:
|
||||
new_node = table_header_scene.instance()
|
||||
headers_node.add_child(new_node)
|
||||
new_node = table_header_scene.instantiate()
|
||||
node_columns.add_child(new_node)
|
||||
new_node.get_node("Button").text = x
|
||||
new_node.get_node("Button").hint_tooltip = x
|
||||
new_node.get_node("Button").connect("pressed", self, "_set_sorting", [x])
|
||||
new_node.get_node("Button").tooltip_text = x
|
||||
new_node.get_node("Button").pressed.connect(_set_sorting.bind(x))
|
||||
new_node.get_node("Button2").pressed.connect(_select_column.bind(x))
|
||||
|
||||
var to_free = root_node.get_child_count() - rows.size() * columns.size()
|
||||
var to_free = node_table_root.get_child_count() - rows.size() * columns.size()
|
||||
while to_free > 0:
|
||||
root_node.get_child(columns.size()).free()
|
||||
node_table_root.get_child(columns.size()).free()
|
||||
to_free -= 1
|
||||
|
||||
for i in rows.size():
|
||||
@ -209,44 +215,45 @@ func _create_table(columns_changed : bool):
|
||||
|
||||
|
||||
func _update_column_sizes():
|
||||
yield(get_tree(), "idle_frame")
|
||||
var column_headers := get_node(path_columns).get_children()
|
||||
var table_root := get_node(path_table_root)
|
||||
if node_table_root.get_child_count() == 0:
|
||||
return
|
||||
|
||||
await get_tree().process_frame
|
||||
var column_headers := node_columns.get_children()
|
||||
var clip_text : bool = ProjectSettings.get_setting(SettingsGrid.SETTING_PREFIX + "clip_headers")
|
||||
var min_width := 0
|
||||
var cell : Control
|
||||
|
||||
get_node(path_columns).get_parent().rect_min_size.y = get_node(path_columns).rect_size.y
|
||||
node_columns.get_parent().custom_minimum_size.y = node_columns.size.y
|
||||
for i in column_headers.size():
|
||||
cell = table_root.get_child(i)
|
||||
cell = node_table_root.get_child(i)
|
||||
|
||||
column_headers[i].get_child(0).clip_text = clip_text
|
||||
column_headers[i].rect_min_size.x = 0
|
||||
cell.rect_min_size.x = 0
|
||||
column_headers[i].rect_size.x = 0
|
||||
get_node(path_columns).queue_sort()
|
||||
column_headers[i].custom_minimum_size.x = 0
|
||||
cell.custom_minimum_size.x = 0
|
||||
column_headers[i].size.x = 0
|
||||
node_columns.queue_sort()
|
||||
|
||||
min_width = max(column_headers[i].rect_size.x, cell.rect_size.x)
|
||||
column_headers[i].rect_min_size.x = min_width
|
||||
cell.rect_min_size.x = column_headers[i].get_minimum_size().x
|
||||
column_headers[i].rect_size.x = min_width
|
||||
min_width = max(column_headers[i].size.x, cell.size.x)
|
||||
column_headers[i].custom_minimum_size.x = min_width
|
||||
cell.custom_minimum_size.x = column_headers[i].get_minimum_size().x
|
||||
column_headers[i].size.x = min_width
|
||||
|
||||
get_node(path_columns).queue_sort()
|
||||
node_columns.queue_sort()
|
||||
|
||||
|
||||
func _update_row(row_index : int, color_rows : bool = true):
|
||||
var root_node = get_node(path_table_root)
|
||||
var current_node : Control
|
||||
var next_color := Color.white
|
||||
var next_color := Color.WHITE
|
||||
for i in columns.size():
|
||||
if root_node.get_child_count() <= row_index * columns.size() + i:
|
||||
if node_table_root.get_child_count() <= row_index * columns.size() + i:
|
||||
current_node = column_editors[i].create_cell(self)
|
||||
current_node.connect("gui_input", self, "_on_cell_gui_input", [current_node])
|
||||
root_node.add_child(current_node)
|
||||
current_node.gui_input.connect(_on_cell_gui_input.bind(current_node))
|
||||
node_table_root.add_child(current_node)
|
||||
|
||||
else:
|
||||
current_node = root_node.get_child(row_index * columns.size() + i)
|
||||
current_node.hint_tooltip = columns[i] + "\nOf " + rows[row_index].resource_path.get_file().get_basename()
|
||||
current_node = node_table_root.get_child(row_index * columns.size() + i)
|
||||
current_node.tooltip_text = columns[i] + "\nOf " + rows[row_index].resource_path.get_file().get_basename()
|
||||
|
||||
column_editors[i].set_value(current_node, rows[row_index].get(columns[i]))
|
||||
if columns[i] == "resource_path":
|
||||
@ -262,7 +269,7 @@ func _apply_search_cond():
|
||||
if search_cond == null:
|
||||
_on_SearchCond_text_entered("true")
|
||||
|
||||
var table_elements = get_node(path_table_root).get_children()
|
||||
var table_elements = node_table_root.get_children()
|
||||
|
||||
for i in rows.size():
|
||||
var row_visible = search_cond.can_show(rows[i], i)
|
||||
@ -273,30 +280,29 @@ func _apply_search_cond():
|
||||
func add_path_to_recent(path : String, is_loading : bool = false):
|
||||
if path in recent_paths: return
|
||||
|
||||
var node_recent := get_node(path_recent_paths)
|
||||
var idx_in_array := recent_paths.find(path)
|
||||
if idx_in_array != -1:
|
||||
node_recent.remove_item(idx_in_array)
|
||||
recent_paths.remove(idx_in_array)
|
||||
node_recent_paths.remove_item(idx_in_array)
|
||||
recent_paths.remove_at(idx_in_array)
|
||||
|
||||
recent_paths.append(path)
|
||||
node_recent.add_item(path)
|
||||
node_recent.select(node_recent.get_item_count() - 1)
|
||||
node_recent_paths.add_item(path)
|
||||
node_recent_paths.select(node_recent_paths.get_item_count() - 1)
|
||||
|
||||
if !is_loading:
|
||||
save_data()
|
||||
|
||||
|
||||
func remove_selected_path_from_recent():
|
||||
if get_node(path_recent_paths).get_item_count() == 0:
|
||||
if node_recent_paths.get_item_count() == 0:
|
||||
return
|
||||
|
||||
var idx_in_array = get_node(path_recent_paths).selected
|
||||
recent_paths.remove(idx_in_array)
|
||||
get_node(path_recent_paths).remove_item(idx_in_array)
|
||||
var idx_in_array = node_recent_paths.selected
|
||||
recent_paths.remove_at(idx_in_array)
|
||||
node_recent_paths.remove_item(idx_in_array)
|
||||
|
||||
if get_node(path_recent_paths).get_item_count() != 0:
|
||||
get_node(path_recent_paths).select(0)
|
||||
if node_recent_paths.get_item_count() != 0:
|
||||
node_recent_paths.select(0)
|
||||
display_folder(recent_paths[0])
|
||||
save_data()
|
||||
|
||||
@ -304,7 +310,7 @@ func remove_selected_path_from_recent():
|
||||
func save_data():
|
||||
var file = File.new()
|
||||
file.open(save_data_path, File.WRITE)
|
||||
file.store_string(var2str(
|
||||
file.store_string(str(
|
||||
{
|
||||
"recent_paths" : recent_paths,
|
||||
}
|
||||
@ -323,12 +329,12 @@ func _on_Path_text_entered(new_text : String = ""):
|
||||
|
||||
func _on_RecentPaths_item_selected(index : int):
|
||||
current_path = recent_paths[index]
|
||||
get_node(path_folder_path).text = recent_paths[index]
|
||||
node_folder_path.text = recent_paths[index]
|
||||
display_folder(current_path)
|
||||
|
||||
|
||||
func _on_FileDialog_dir_selected(dir : String):
|
||||
get_node(path_folder_path).text = dir
|
||||
node_folder_path.text = dir
|
||||
add_path_to_recent(dir)
|
||||
display_folder(dir)
|
||||
|
||||
@ -347,10 +353,10 @@ func deselect_cell(cell : Control):
|
||||
if idx == -1: return
|
||||
|
||||
column_editors[_get_cell_column(cell)].set_selected(cell, false)
|
||||
edited_cells.remove(idx)
|
||||
edited_cells.remove_at(idx)
|
||||
if edited_cells_text.size() != 0:
|
||||
edited_cells_text.remove(idx)
|
||||
edit_cursor_positions.remove(idx)
|
||||
edited_cells_text.remove_at(idx)
|
||||
edit_cursor_positions.remove_at(idx)
|
||||
|
||||
|
||||
func select_cell(cell : Control):
|
||||
@ -358,7 +364,8 @@ func select_cell(cell : Control):
|
||||
if _can_select_cell(cell):
|
||||
_add_cell_to_selection(cell)
|
||||
_try_open_docks(cell)
|
||||
inspector_resource = rows[_get_cell_row(cell)].duplicate()
|
||||
# inspector_resource = rows[_get_cell_row(cell)].duplicate() #
|
||||
inspector_resource = rows[_get_cell_row(cell)]
|
||||
editor_plugin.get_editor_interface().edit_resource(inspector_resource)
|
||||
|
||||
|
||||
@ -372,10 +379,9 @@ func select_cells_to(cell : Control):
|
||||
var edge_shift = -1 if row_start > row_end else 1
|
||||
row_start += edge_shift
|
||||
row_end += edge_shift
|
||||
var table_root := get_node(path_table_root)
|
||||
|
||||
for i in range(row_start, row_end, edge_shift):
|
||||
var cur_cell := table_root.get_child(i * columns.size() + column_index)
|
||||
var cur_cell := node_table_root.get_child(i * columns.size() + column_index)
|
||||
if !cur_cell.visible:
|
||||
# When search is active, some cells will be hidden.
|
||||
continue
|
||||
@ -398,7 +404,7 @@ func _add_cell_to_selection(cell : Control):
|
||||
|
||||
func _try_open_docks(cell : Control):
|
||||
var column_index = _get_cell_column(cell)
|
||||
for x in get_node(path_property_editors).get_children():
|
||||
for x in node_property_editors.get_children():
|
||||
x.visible = x.try_edit_value(
|
||||
rows[_get_cell_row(cell)].get(columns[column_index]),
|
||||
column_types[column_index],
|
||||
@ -438,7 +444,7 @@ func set_edited_cells_values(new_cell_values : Array):
|
||||
)
|
||||
editor_plugin.undo_redo.commit_action()
|
||||
editor_interface.get_resource_filesystem().scan()
|
||||
undo_redo_version = editor_plugin.undo_redo.get_version()
|
||||
undo_redo_version = my_undo_redo.get_version()
|
||||
_update_column_sizes()
|
||||
|
||||
|
||||
@ -469,7 +475,7 @@ func _can_select_cell(cell : Control) -> bool:
|
||||
if edited_cells.size() == 0:
|
||||
return true
|
||||
|
||||
if !Input.is_key_pressed(KEY_CONTROL):
|
||||
if !Input.is_key_pressed(KEY_CTRL):
|
||||
return false
|
||||
|
||||
if (
|
||||
@ -482,26 +488,26 @@ func _can_select_cell(cell : Control) -> bool:
|
||||
|
||||
|
||||
func _get_cell_column(cell) -> int:
|
||||
return cell.get_position_in_parent() % columns.size()
|
||||
return cell.get_index() % columns.size()
|
||||
|
||||
|
||||
func _get_cell_row(cell) -> int:
|
||||
return cell.get_position_in_parent() / columns.size()
|
||||
return cell.get_index() / columns.size()
|
||||
|
||||
|
||||
func _update_scroll():
|
||||
get_node(path_columns).rect_position.x = -get_node(path_table_root).get_node("../..").scroll_horizontal
|
||||
node_columns.position.x = -node_table_root.get_node("../..").scroll_horizontal
|
||||
|
||||
|
||||
func _on_cell_gui_input(event : InputEvent, cell : Control):
|
||||
if event is InputEventMouseButton:
|
||||
grab_focus()
|
||||
_update_scroll()
|
||||
if event.button_index != BUTTON_LEFT:
|
||||
if event.button_index != MOUSE_BUTTON_LEFT:
|
||||
return
|
||||
|
||||
grab_focus()
|
||||
if event.pressed:
|
||||
if Input.is_key_pressed(KEY_CONTROL):
|
||||
if Input.is_key_pressed(KEY_CTRL):
|
||||
if cell in edited_cells:
|
||||
deselect_cell(cell)
|
||||
|
||||
@ -519,7 +525,7 @@ func _on_cell_gui_input(event : InputEvent, cell : Control):
|
||||
func _gui_input(event : InputEvent):
|
||||
if event is InputEventMouseButton:
|
||||
_update_scroll()
|
||||
if event.button_index != BUTTON_LEFT:
|
||||
if event.button_index != MOUSE_BUTTON_LEFT:
|
||||
return
|
||||
|
||||
grab_focus()
|
||||
@ -534,100 +540,96 @@ func _input(event : InputEvent):
|
||||
if !has_focus() or edited_cells.size() == 0:
|
||||
return
|
||||
|
||||
var column = _get_cell_column(edited_cells[0])
|
||||
if column_types[column] == TYPE_OBJECT || columns[column] == "resource_path":
|
||||
return
|
||||
|
||||
if event.scancode == KEY_CONTROL or event.scancode == KEY_SHIFT:
|
||||
if event.keycode == KEY_CTRL or event.keycode == KEY_SHIFT:
|
||||
# Modifier keys do not get processed.
|
||||
return
|
||||
|
||||
# Ctrl + Z (before, and instead of, committing the action!)
|
||||
if Input.is_key_pressed(KEY_CONTROL) and event.scancode == KEY_Z:
|
||||
if Input.is_key_pressed(KEY_CTRL) and event.keycode == KEY_Z:
|
||||
if Input.is_key_pressed(KEY_SHIFT):
|
||||
editor_plugin.undo_redo.redo()
|
||||
my_undo_redo.redo()
|
||||
# Ctrl + z
|
||||
else:
|
||||
editor_plugin.undo_redo.undo()
|
||||
my_undo_redo.undo()
|
||||
|
||||
return
|
||||
|
||||
# This shortcut is used by Godot as well.
|
||||
if Input.is_key_pressed(KEY_CONTROL) and event.scancode == KEY_Y:
|
||||
editor_plugin.undo_redo.redo()
|
||||
if Input.is_key_pressed(KEY_CTRL) and event.keycode == KEY_Y:
|
||||
my_undo_redo.redo()
|
||||
return
|
||||
|
||||
_key_specific_action(event)
|
||||
grab_focus()
|
||||
editor_interface.get_resource_filesystem().scan()
|
||||
undo_redo_version = my_undo_redo.get_version()
|
||||
|
||||
|
||||
func _key_specific_action(event : InputEvent):
|
||||
var column = _get_cell_column(edited_cells[0])
|
||||
var ctrl_pressed := Input.is_key_pressed(KEY_CTRL)
|
||||
|
||||
# BETWEEN-CELL NAVIGATION
|
||||
if event.keycode == KEY_UP:
|
||||
_move_selection_on_grid(0, (-1 if !ctrl_pressed else -10))
|
||||
|
||||
elif event.keycode == KEY_DOWN:
|
||||
_move_selection_on_grid(0, (1 if !ctrl_pressed else 10))
|
||||
|
||||
elif Input.is_key_pressed(KEY_SHIFT) and event.keycode == KEY_TAB:
|
||||
_move_selection_on_grid((-1 if !ctrl_pressed else -10), 0)
|
||||
|
||||
elif event.keycode == KEY_TAB:
|
||||
_move_selection_on_grid((1 if !ctrl_pressed else 10), 0)
|
||||
|
||||
# Non-text and paths can't be edited.
|
||||
if columns[column] == "resource_path":
|
||||
return
|
||||
|
||||
if !column_editors[column].is_text():
|
||||
return
|
||||
|
||||
_key_specific_action(event)
|
||||
grab_focus()
|
||||
|
||||
editor_interface.get_resource_filesystem().scan()
|
||||
undo_redo_version = editor_plugin.undo_redo.get_version()
|
||||
|
||||
|
||||
func _key_specific_action(event : InputEvent):
|
||||
var column = _get_cell_column(edited_cells[0])
|
||||
var ctrl_pressed := Input.is_key_pressed(KEY_CONTROL)
|
||||
if ctrl_pressed:
|
||||
editor_plugin.hide_bottom_panel()
|
||||
|
||||
# CURSOR MOVEMENT
|
||||
if event.scancode == KEY_LEFT:
|
||||
if event.keycode == KEY_LEFT:
|
||||
TextEditingUtils.multi_move_left(
|
||||
edited_cells_text, edit_cursor_positions, Input.is_key_pressed(KEY_CONTROL)
|
||||
edited_cells_text, edit_cursor_positions, ctrl_pressed
|
||||
)
|
||||
|
||||
elif event.scancode == KEY_RIGHT:
|
||||
elif event.keycode == KEY_RIGHT:
|
||||
TextEditingUtils.multi_move_right(
|
||||
edited_cells_text, edit_cursor_positions, Input.is_key_pressed(KEY_CONTROL)
|
||||
edited_cells_text, edit_cursor_positions, ctrl_pressed
|
||||
)
|
||||
|
||||
elif event.scancode == KEY_HOME:
|
||||
elif event.keycode == KEY_HOME:
|
||||
for i in edit_cursor_positions.size():
|
||||
edit_cursor_positions[i] = 0
|
||||
|
||||
elif event.scancode == KEY_END:
|
||||
elif event.keycode == KEY_END:
|
||||
for i in edit_cursor_positions.size():
|
||||
edit_cursor_positions[i] = edited_cells_text[i].length()
|
||||
|
||||
# BETWEEN-CELL NAVIGATION
|
||||
elif event.scancode == KEY_UP:
|
||||
_move_selection_on_grid(0, (-1 if !ctrl_pressed else -10))
|
||||
|
||||
elif event.scancode == KEY_DOWN:
|
||||
_move_selection_on_grid(0, (1 if !ctrl_pressed else 10))
|
||||
|
||||
elif Input.is_key_pressed(KEY_SHIFT) and event.scancode == KEY_TAB:
|
||||
_move_selection_on_grid((-1 if !ctrl_pressed else -10), 0)
|
||||
get_tree().set_input_as_handled()
|
||||
|
||||
elif event.scancode == KEY_TAB:
|
||||
_move_selection_on_grid((1 if !ctrl_pressed else 10), 0)
|
||||
get_tree().set_input_as_handled()
|
||||
|
||||
# Ctrl + C (so you can edit in a proper text editor instead of this wacky nonsense)
|
||||
elif ctrl_pressed and event.scancode == KEY_C:
|
||||
elif ctrl_pressed and event.keycode == KEY_C:
|
||||
TextEditingUtils.multi_copy(edited_cells_text)
|
||||
|
||||
# Ctrl + V
|
||||
elif ctrl_pressed and event.scancode == KEY_V:
|
||||
elif ctrl_pressed and event.keycode == KEY_V:
|
||||
set_edited_cells_values(TextEditingUtils.multi_paste(
|
||||
edited_cells_text, edit_cursor_positions
|
||||
))
|
||||
|
||||
# ERASING
|
||||
elif event.scancode == KEY_BACKSPACE:
|
||||
elif event.keycode == KEY_BACKSPACE:
|
||||
set_edited_cells_values(TextEditingUtils.multi_erase_left(
|
||||
edited_cells_text, edit_cursor_positions, Input.is_key_pressed(KEY_CONTROL)
|
||||
edited_cells_text, edit_cursor_positions, ctrl_pressed
|
||||
))
|
||||
|
||||
elif event.scancode == KEY_DELETE:
|
||||
elif event.keycode == KEY_DELETE:
|
||||
set_edited_cells_values(TextEditingUtils.multi_erase_right(
|
||||
edited_cells_text, edit_cursor_positions, Input.is_key_pressed(KEY_CONTROL)
|
||||
edited_cells_text, edit_cursor_positions, ctrl_pressed
|
||||
))
|
||||
get_tree().set_input_as_handled() # Because this is one dangerous action.
|
||||
get_viewport().set_input_as_handled() # Because this is one dangerous action
|
||||
|
||||
|
||||
# And finally, text typing.
|
||||
elif event.unicode != 0 and event.unicode != 127:
|
||||
@ -637,13 +639,15 @@ func _key_specific_action(event : InputEvent):
|
||||
|
||||
|
||||
func _move_selection_on_grid(move_h : int, move_v : int):
|
||||
var cell = edited_cells[0]
|
||||
grab_focus()
|
||||
deselect_all_cells()
|
||||
select_cell(
|
||||
get_node(path_table_root).get_child(
|
||||
edited_cells[0].get_position_in_parent()
|
||||
node_table_root.get_child(
|
||||
cell.get_index()
|
||||
+ move_h + move_v * columns.size()
|
||||
)
|
||||
)
|
||||
deselect_cell(edited_cells[0])
|
||||
|
||||
|
||||
func set_cell(cell, value):
|
||||
@ -657,12 +661,16 @@ func set_cell(cell, value):
|
||||
func _update_resources(update_rows : Array, update_cells : Array, update_column : int, values : Array):
|
||||
for i in update_rows.size():
|
||||
column_editors[update_column].set_value(update_cells[i], values[i])
|
||||
values[i] = _try_convert(values[i], column_types[update_column])
|
||||
if values[i] is String:
|
||||
print(values[i])
|
||||
values[i] = _try_convert(values[i], column_types[update_column])
|
||||
|
||||
if values[i] == null:
|
||||
continue
|
||||
|
||||
update_rows[i].set(columns[update_column], convert(values[i], column_types[update_column]))
|
||||
ResourceSaver.save(update_rows[i].resource_path, update_rows[i])
|
||||
update_rows[i].set(columns[update_column], values[i])
|
||||
ResourceSaver.save(update_rows[i])
|
||||
|
||||
if column_types[update_column] == TYPE_COLOR:
|
||||
for j in columns.size() - update_column:
|
||||
if j != 0 and column_types[j + update_column] == TYPE_COLOR:
|
||||
@ -728,7 +736,8 @@ func _on_ProcessExpr_text_entered(new_text : String):
|
||||
func _on_inspector_property_edited(property : String):
|
||||
if !visible: return
|
||||
if inspector_resource == null: return
|
||||
if undo_redo_version > editor_plugin.undo_redo.get_version(): return
|
||||
|
||||
undo_redo_version = my_undo_redo.get_version()
|
||||
|
||||
var value = inspector_resource.get(property)
|
||||
var values = []
|
||||
@ -744,7 +753,19 @@ func _on_inspector_property_edited(property : String):
|
||||
var index := 0
|
||||
for i in previously_edited.size():
|
||||
index = _get_cell_row(previously_edited[i]) * columns.size() + new_column
|
||||
_add_cell_to_selection(get_node(path_table_root).get_child(index))
|
||||
_add_cell_to_selection(node_table_root.get_child(index))
|
||||
|
||||
await get_tree().process_frame
|
||||
|
||||
set_edited_cells_values(values)
|
||||
_try_open_docks(edited_cells[0])
|
||||
for i in edited_cells.size():
|
||||
set_cell(edited_cells[i], values[i])
|
||||
|
||||
|
||||
func _on_File_pressed():
|
||||
node_folder_path.get_parent().get_parent().visible = !node_folder_path.get_parent().get_parent().visible
|
||||
|
||||
|
||||
func _on_SearchProcess_pressed():
|
||||
$"HeaderContentSplit/VBoxContainer/Search".visible = !$"HeaderContentSplit/VBoxContainer/Search".visible
|
731
addons/resources_spreadsheet_view/editor_view.tscn
Normal file
731
addons/resources_spreadsheet_view/editor_view.tscn
Normal file
@ -0,0 +1,731 @@
|
||||
[gd_scene load_steps=20 format=3 uid="uid://dpdgrocww8a51"]
|
||||
|
||||
[ext_resource type="Script" path="res://addons/resources_spreadsheet_view/editor_view.gd" id="1"]
|
||||
[ext_resource type="Script" path="res://addons/resources_spreadsheet_view/typed_cells/cell_editor_string.gd" id="2"]
|
||||
[ext_resource type="Script" path="res://addons/resources_spreadsheet_view/typed_cells/cell_editor_color.gd" id="3"]
|
||||
[ext_resource type="Script" path="res://addons/resources_spreadsheet_view/editor_icon_button.gd" id="4"]
|
||||
[ext_resource type="Script" path="res://addons/resources_spreadsheet_view/typed_cells/cell_editor_bool.gd" id="5"]
|
||||
[ext_resource type="PackedScene" uid="uid://bvafuebbwx7yl" path="res://addons/resources_spreadsheet_view/table_header.tscn" id="6"]
|
||||
[ext_resource type="PackedScene" uid="uid://b3a3bo6cfyh5t" path="res://addons/resources_spreadsheet_view/typed_editors/dock_color.tscn" id="7"]
|
||||
[ext_resource type="PackedScene" path="res://addons/resources_spreadsheet_view/typed_editors/dock_number.tscn" id="8"]
|
||||
[ext_resource type="Script" path="res://addons/resources_spreadsheet_view/typed_cells/cell_editor_resource.gd" id="9"]
|
||||
[ext_resource type="PackedScene" uid="uid://rww3gpl052bn" path="res://addons/resources_spreadsheet_view/typed_editors/dock_texture.tscn" id="10"]
|
||||
[ext_resource type="Script" path="res://addons/resources_spreadsheet_view/editor_color_setter.gd" id="10_b87c7"]
|
||||
[ext_resource type="Script" path="res://addons/resources_spreadsheet_view/typed_cells/cell_editor_array.gd" id="11"]
|
||||
[ext_resource type="PackedScene" uid="uid://c3a2cip8ffccv" path="res://addons/resources_spreadsheet_view/typed_editors/dock_array.tscn" id="12"]
|
||||
[ext_resource type="Script" path="res://addons/resources_spreadsheet_view/typed_cells/cell_editor_enum.gd" id="13"]
|
||||
[ext_resource type="Script" path="res://addons/resources_spreadsheet_view/settings_grid.gd" id="14"]
|
||||
|
||||
[sub_resource type="Gradient" id="Gradient_8kp6w"]
|
||||
offsets = PackedFloat32Array(0, 0.995413, 1)
|
||||
colors = PackedColorArray(1, 1, 1, 0.490196, 1, 1, 1, 0.0458716, 1, 1, 1, 0)
|
||||
|
||||
[sub_resource type="GradientTexture2D" id="GradientTexture2D_18il8"]
|
||||
gradient = SubResource("Gradient_8kp6w")
|
||||
|
||||
[sub_resource type="Image" id="Image_7onqo"]
|
||||
data = {
|
||||
"data": PackedByteArray(255, 255, 255, 0, 255, 255, 255, 0, 255, 128, 128, 4, 255, 128, 128, 4, 255, 128, 128, 4, 255, 128, 128, 4, 255, 128, 128, 4, 255, 128, 128, 4, 255, 128, 128, 4, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 93, 93, 131, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 131, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 131, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 93, 93, 252, 255, 93, 93, 252, 255, 93, 93, 252, 255, 94, 94, 127, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 128, 128, 4, 255, 128, 128, 4, 255, 128, 128, 4, 255, 128, 128, 4, 255, 128, 128, 4, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 231, 255, 93, 93, 55, 255, 97, 97, 58, 255, 93, 93, 233, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 231, 255, 94, 94, 54, 255, 94, 94, 57, 255, 93, 93, 233, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 97, 97, 42, 255, 255, 255, 0, 255, 255, 255, 0, 255, 97, 97, 42, 255, 93, 93, 233, 255, 93, 93, 232, 255, 93, 93, 41, 255, 255, 255, 0, 255, 255, 255, 0, 255, 97, 97, 42, 255, 93, 93, 233, 255, 93, 93, 232, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 96, 96, 45, 255, 97, 97, 42, 255, 255, 255, 0, 255, 97, 97, 42, 255, 97, 97, 42, 255, 255, 255, 0, 255, 98, 98, 47, 255, 97, 97, 42, 255, 255, 255, 0, 255, 97, 97, 42, 255, 97, 97, 42, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 96, 96, 45, 255, 93, 93, 235, 255, 93, 93, 233, 255, 97, 97, 42, 255, 255, 255, 0, 255, 255, 255, 0, 255, 94, 94, 46, 255, 93, 93, 236, 255, 93, 93, 233, 255, 97, 97, 42, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 235, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 233, 255, 95, 95, 59, 255, 96, 96, 61, 255, 93, 93, 235, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 233, 255, 95, 95, 59, 255, 96, 96, 61, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 252, 255, 93, 93, 252, 255, 93, 93, 252, 255, 93, 93, 252, 255, 93, 93, 252, 255, 93, 93, 252, 255, 93, 93, 252, 255, 93, 93, 252, 255, 93, 93, 252, 255, 93, 93, 252, 255, 93, 93, 252, 255, 93, 93, 252, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0),
|
||||
"format": "RGBA8",
|
||||
"height": 16,
|
||||
"mipmaps": false,
|
||||
"width": 16
|
||||
}
|
||||
|
||||
[sub_resource type="ImageTexture" id="ImageTexture_5qo8i"]
|
||||
image = SubResource("Image_7onqo")
|
||||
|
||||
[node name="Control" type="MarginContainer" node_paths=PackedStringArray("node_folder_path", "node_recent_paths", "node_table_root", "node_property_editors", "node_columns")]
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 3
|
||||
focus_neighbor_left = NodePath(".")
|
||||
focus_neighbor_top = NodePath(".")
|
||||
focus_neighbor_right = NodePath(".")
|
||||
focus_neighbor_bottom = NodePath(".")
|
||||
focus_next = NodePath(".")
|
||||
focus_previous = NodePath(".")
|
||||
focus_mode = 2
|
||||
theme_override_constants/margin_left = 3
|
||||
theme_override_constants/margin_right = 3
|
||||
theme_override_constants/margin_bottom = 5
|
||||
script = ExtResource("1")
|
||||
table_header_scene = ExtResource("6")
|
||||
cell_editor_classes = [ExtResource("13"), ExtResource("11"), ExtResource("3"), ExtResource("5"), ExtResource("9"), ExtResource("2")]
|
||||
node_folder_path = NodePath("HeaderContentSplit/VBoxContainer/HBoxContainer/HBoxContainer/Path")
|
||||
node_recent_paths = NodePath("HeaderContentSplit/VBoxContainer/HBoxContainer/HBoxContainer2/RecentPaths")
|
||||
node_table_root = NodePath("HeaderContentSplit/MarginContainer/FooterContentSplit/Panel/Scroll/MarginContainer/TableGrid")
|
||||
node_property_editors = NodePath("HeaderContentSplit/MarginContainer/FooterContentSplit/Footer/PropertyEditors")
|
||||
node_columns = NodePath("HeaderContentSplit/VBoxContainer/Columns/Columns")
|
||||
metadata/_edit_lock_ = true
|
||||
|
||||
[node name="HeaderContentSplit" type="VBoxContainer" parent="."]
|
||||
layout_mode = 2
|
||||
offset_left = 3.0
|
||||
offset_right = 1149.0
|
||||
offset_bottom = 643.0
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="HeaderContentSplit"]
|
||||
layout_mode = 2
|
||||
offset_right = 1146.0
|
||||
offset_bottom = 108.0
|
||||
|
||||
[node name="MenuStrip" type="HBoxContainer" parent="HeaderContentSplit/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
offset_right = 1146.0
|
||||
offset_bottom = 31.0
|
||||
|
||||
[node name="File" type="Button" parent="HeaderContentSplit/VBoxContainer/MenuStrip"]
|
||||
layout_mode = 2
|
||||
offset_right = 35.0
|
||||
offset_bottom = 31.0
|
||||
tooltip_text = "Settings"
|
||||
focus_mode = 0
|
||||
toggle_mode = true
|
||||
button_pressed = true
|
||||
text = "File"
|
||||
flat = true
|
||||
|
||||
[node name="SearchProcess" type="Button" parent="HeaderContentSplit/VBoxContainer/MenuStrip"]
|
||||
layout_mode = 2
|
||||
offset_left = 39.0
|
||||
offset_right = 153.0
|
||||
offset_bottom = 31.0
|
||||
tooltip_text = "Settings"
|
||||
focus_mode = 0
|
||||
toggle_mode = true
|
||||
text = "Filter/Process"
|
||||
flat = true
|
||||
|
||||
[node name="Settings" type="Button" parent="HeaderContentSplit/VBoxContainer/MenuStrip"]
|
||||
layout_mode = 2
|
||||
offset_left = 157.0
|
||||
offset_right = 227.0
|
||||
offset_bottom = 31.0
|
||||
tooltip_text = "Settings"
|
||||
focus_mode = 0
|
||||
text = "Settings"
|
||||
flat = true
|
||||
|
||||
[node name="Info" type="Button" parent="HeaderContentSplit/VBoxContainer/MenuStrip"]
|
||||
layout_mode = 2
|
||||
offset_left = 231.0
|
||||
offset_right = 286.0
|
||||
offset_bottom = 31.0
|
||||
focus_mode = 0
|
||||
text = "About"
|
||||
flat = true
|
||||
|
||||
[node name="HBoxContainer" type="HSplitContainer" parent="HeaderContentSplit/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
offset_top = 35.0
|
||||
offset_right = 1146.0
|
||||
offset_bottom = 66.0
|
||||
split_offset = -249
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="HeaderContentSplit/VBoxContainer/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
offset_right = 885.0
|
||||
offset_bottom = 31.0
|
||||
size_flags_horizontal = 3
|
||||
theme_override_constants/separation = 0
|
||||
|
||||
[node name="ColorRect4" type="ColorRect" parent="HeaderContentSplit/VBoxContainer/HBoxContainer/HBoxContainer"]
|
||||
modulate = Color(0, 0, 0, 1)
|
||||
custom_minimum_size = Vector2i(6, 18)
|
||||
layout_mode = 2
|
||||
offset_right = 6.0
|
||||
offset_bottom = 31.0
|
||||
script = ExtResource("10_b87c7")
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="HeaderContentSplit/VBoxContainer/HBoxContainer/HBoxContainer/ColorRect4"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 11
|
||||
anchor_left = 1.0
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_right = 48.0
|
||||
grow_horizontal = 0
|
||||
grow_vertical = 2
|
||||
texture = SubResource("GradientTexture2D_18il8")
|
||||
ignore_texture_size = true
|
||||
|
||||
[node name="ColorRect3" type="Control" parent="HeaderContentSplit/VBoxContainer/HBoxContainer/HBoxContainer"]
|
||||
custom_minimum_size = Vector2i(2, 0)
|
||||
layout_mode = 2
|
||||
anchors_preset = 0
|
||||
offset_left = 6.0
|
||||
offset_right = 8.0
|
||||
offset_bottom = 31.0
|
||||
|
||||
[node name="Label" type="Label" parent="HeaderContentSplit/VBoxContainer/HBoxContainer/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
offset_left = 8.0
|
||||
offset_top = 2.0
|
||||
offset_right = 137.0
|
||||
offset_bottom = 28.0
|
||||
text = "Resource Folder:"
|
||||
|
||||
[node name="Path" type="LineEdit" parent="HeaderContentSplit/VBoxContainer/HBoxContainer/HBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
offset_left = 137.0
|
||||
offset_right = 837.0
|
||||
offset_bottom = 31.0
|
||||
size_flags_horizontal = 3
|
||||
caret_blink = true
|
||||
|
||||
[node name="SelectDir" type="Button" parent="HeaderContentSplit/VBoxContainer/HBoxContainer/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
offset_left = 837.0
|
||||
offset_right = 861.0
|
||||
offset_bottom = 31.0
|
||||
tooltip_text = "Open Folder"
|
||||
icon = SubResource("ImageTexture_5qo8i")
|
||||
script = ExtResource("4")
|
||||
icon_name = "Folder"
|
||||
|
||||
[node name="DeletePath" type="Button" parent="HeaderContentSplit/VBoxContainer/HBoxContainer/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
offset_left = 861.0
|
||||
offset_right = 885.0
|
||||
offset_bottom = 31.0
|
||||
tooltip_text = "Remove Path from Recent"
|
||||
icon = SubResource("ImageTexture_5qo8i")
|
||||
script = ExtResource("4")
|
||||
icon_name = "Remove"
|
||||
|
||||
[node name="HBoxContainer2" type="HBoxContainer" parent="HeaderContentSplit/VBoxContainer/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
offset_left = 897.0
|
||||
offset_right = 1146.0
|
||||
offset_bottom = 31.0
|
||||
|
||||
[node name="Label2" type="Label" parent="HeaderContentSplit/VBoxContainer/HBoxContainer/HBoxContainer2"]
|
||||
layout_mode = 2
|
||||
offset_top = 2.0
|
||||
offset_right = 104.0
|
||||
offset_bottom = 28.0
|
||||
text = "Open Recent:"
|
||||
|
||||
[node name="RecentPaths" type="OptionButton" parent="HeaderContentSplit/VBoxContainer/HBoxContainer/HBoxContainer2"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
offset_left = 108.0
|
||||
offset_right = 249.0
|
||||
offset_bottom = 31.0
|
||||
size_flags_horizontal = 3
|
||||
clip_text = true
|
||||
fit_to_longest_item = false
|
||||
|
||||
[node name="Search" type="VBoxContainer" parent="HeaderContentSplit/VBoxContainer"]
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
offset_top = 70.0
|
||||
offset_right = 1146.0
|
||||
offset_bottom = 127.0
|
||||
theme_override_constants/separation = 0
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="HeaderContentSplit/VBoxContainer/Search"]
|
||||
layout_mode = 2
|
||||
offset_right = 1146.0
|
||||
offset_bottom = 26.0
|
||||
|
||||
[node name="ColorRect4" type="ColorRect" parent="HeaderContentSplit/VBoxContainer/Search/HBoxContainer"]
|
||||
modulate = Color(0, 0, 0, 1)
|
||||
custom_minimum_size = Vector2i(6, 18)
|
||||
layout_mode = 2
|
||||
offset_right = 6.0
|
||||
offset_bottom = 26.0
|
||||
size_flags_vertical = 5
|
||||
script = ExtResource("10_b87c7")
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="HeaderContentSplit/VBoxContainer/Search/HBoxContainer/ColorRect4"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 11
|
||||
anchor_left = 1.0
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_right = 48.0
|
||||
grow_horizontal = 0
|
||||
grow_vertical = 2
|
||||
texture = SubResource("GradientTexture2D_18il8")
|
||||
ignore_texture_size = true
|
||||
|
||||
[node name="Label" type="Label" parent="HeaderContentSplit/VBoxContainer/Search/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
offset_left = 10.0
|
||||
offset_right = 219.0
|
||||
offset_bottom = 26.0
|
||||
text = "GDScript Filter and Process"
|
||||
|
||||
[node name="HSeparator" type="HSeparator" parent="HeaderContentSplit/VBoxContainer/Search/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
offset_left = 223.0
|
||||
offset_right = 1146.0
|
||||
offset_bottom = 26.0
|
||||
size_flags_horizontal = 3
|
||||
|
||||
[node name="Search" type="HBoxContainer" parent="HeaderContentSplit/VBoxContainer/Search"]
|
||||
layout_mode = 2
|
||||
offset_top = 26.0
|
||||
offset_right = 1146.0
|
||||
offset_bottom = 57.0
|
||||
|
||||
[node name="ColorRect2" type="ColorRect" parent="HeaderContentSplit/VBoxContainer/Search/Search"]
|
||||
modulate = Color(0, 0, 0, 1)
|
||||
custom_minimum_size = Vector2i(6, 18)
|
||||
layout_mode = 2
|
||||
offset_right = 6.0
|
||||
offset_bottom = 31.0
|
||||
size_flags_vertical = 5
|
||||
script = ExtResource("10_b87c7")
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="HeaderContentSplit/VBoxContainer/Search/Search/ColorRect2"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 11
|
||||
anchor_left = 1.0
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_right = 48.0
|
||||
grow_horizontal = 0
|
||||
grow_vertical = 2
|
||||
texture = SubResource("GradientTexture2D_18il8")
|
||||
ignore_texture_size = true
|
||||
|
||||
[node name="Label" type="Label" parent="HeaderContentSplit/VBoxContainer/Search/Search"]
|
||||
layout_mode = 2
|
||||
offset_left = 10.0
|
||||
offset_top = 2.0
|
||||
offset_right = 90.0
|
||||
offset_bottom = 28.0
|
||||
text = "Condition:"
|
||||
|
||||
[node name="Label2" type="Label" parent="HeaderContentSplit/VBoxContainer/Search/Search"]
|
||||
layout_mode = 2
|
||||
offset_left = 94.0
|
||||
offset_top = 2.0
|
||||
offset_right = 112.0
|
||||
offset_bottom = 28.0
|
||||
tooltip_text = "Enter an expression. The table only show rows where the expression returns `true`.
|
||||
|
||||
You can use `res.<property_name>` to get a property, and `index` to get row number. Hit ENTER to run the search.
|
||||
|
||||
Try out these:
|
||||
- (res.number_property > 0 and res.number_property < 100)
|
||||
- (res.text_property != \\\"\\\")
|
||||
- (\\\"a\\\" in res.text_property)
|
||||
- (index < 5)"
|
||||
mouse_filter = 0
|
||||
mouse_default_cursor_shape = 16
|
||||
text = "(?)"
|
||||
|
||||
[node name="SearchCond" type="LineEdit" parent="HeaderContentSplit/VBoxContainer/Search/Search"]
|
||||
layout_mode = 2
|
||||
offset_left = 116.0
|
||||
offset_right = 580.0
|
||||
offset_bottom = 31.0
|
||||
size_flags_horizontal = 3
|
||||
text = "true"
|
||||
|
||||
[node name="VSeparator" type="VSeparator" parent="HeaderContentSplit/VBoxContainer/Search/Search"]
|
||||
layout_mode = 2
|
||||
offset_left = 584.0
|
||||
offset_right = 588.0
|
||||
offset_bottom = 31.0
|
||||
|
||||
[node name="Label3" type="Label" parent="HeaderContentSplit/VBoxContainer/Search/Search"]
|
||||
layout_mode = 2
|
||||
offset_left = 592.0
|
||||
offset_top = 2.0
|
||||
offset_right = 656.0
|
||||
offset_bottom = 28.0
|
||||
text = "Process:"
|
||||
|
||||
[node name="Label4" type="Label" parent="HeaderContentSplit/VBoxContainer/Search/Search"]
|
||||
layout_mode = 2
|
||||
offset_left = 660.0
|
||||
offset_top = 2.0
|
||||
offset_right = 678.0
|
||||
offset_bottom = 28.0
|
||||
tooltip_text = "Enter an expression. The values in selected cells will be replaced with calculated new values.
|
||||
|
||||
You can use `value` to get the cell's value, `res.<property_name>` to get a property, `row_index` to get row number
|
||||
and `cell_index` to get the cell's selection order. Hit ENTER to run the search.
|
||||
|
||||
These are some valid expressions:
|
||||
- (res.property1 + res.property2)
|
||||
- (res.property1.replace(\\\"old_string\\\", \\\"new_string\\\"))
|
||||
- (load(\\\"res://path/to_resource.tres\\\"))
|
||||
|
||||
Don't forget quotation marks on strings and str() on non-strings."
|
||||
mouse_filter = 0
|
||||
mouse_default_cursor_shape = 16
|
||||
text = "(?)"
|
||||
|
||||
[node name="ProcessExpr" type="LineEdit" parent="HeaderContentSplit/VBoxContainer/Search/Search"]
|
||||
layout_mode = 2
|
||||
offset_left = 682.0
|
||||
offset_right = 1146.0
|
||||
offset_bottom = 31.0
|
||||
size_flags_horizontal = 3
|
||||
|
||||
[node name="HBoxContainer3" type="HBoxContainer" parent="HeaderContentSplit/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
offset_top = 70.0
|
||||
offset_right = 1146.0
|
||||
offset_bottom = 96.0
|
||||
|
||||
[node name="Label" type="Label" parent="HeaderContentSplit/VBoxContainer/HBoxContainer3"]
|
||||
layout_mode = 2
|
||||
offset_right = 33.0
|
||||
offset_bottom = 26.0
|
||||
text = "Grid"
|
||||
|
||||
[node name="Refresh" type="Button" parent="HeaderContentSplit/VBoxContainer/HBoxContainer3"]
|
||||
layout_mode = 2
|
||||
offset_left = 37.0
|
||||
offset_right = 61.0
|
||||
offset_bottom = 26.0
|
||||
tooltip_text = "Refresh"
|
||||
icon = SubResource("ImageTexture_5qo8i")
|
||||
script = ExtResource("4")
|
||||
icon_name = "Loop"
|
||||
|
||||
[node name="HSeparator" type="HSeparator" parent="HeaderContentSplit/VBoxContainer/HBoxContainer3"]
|
||||
layout_mode = 2
|
||||
offset_left = 65.0
|
||||
offset_right = 1146.0
|
||||
offset_bottom = 26.0
|
||||
size_flags_horizontal = 3
|
||||
|
||||
[node name="Sep" type="Control" parent="HeaderContentSplit/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
anchors_preset = 0
|
||||
offset_top = 100.0
|
||||
offset_right = 1146.0
|
||||
offset_bottom = 100.0
|
||||
|
||||
[node name="Columns" type="Control" parent="HeaderContentSplit/VBoxContainer"]
|
||||
clip_contents = true
|
||||
layout_mode = 2
|
||||
anchors_preset = 0
|
||||
offset_top = 104.0
|
||||
offset_right = 1146.0
|
||||
offset_bottom = 104.0
|
||||
|
||||
[node name="Columns" type="HBoxContainer" parent="HeaderContentSplit/VBoxContainer/Columns"]
|
||||
layout_mode = 0
|
||||
theme_override_constants/separation = 0
|
||||
|
||||
[node name="Sep2" type="Control" parent="HeaderContentSplit/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
anchors_preset = 0
|
||||
offset_top = 108.0
|
||||
offset_right = 1146.0
|
||||
offset_bottom = 108.0
|
||||
|
||||
[node name="MarginContainer" type="MarginContainer" parent="HeaderContentSplit"]
|
||||
layout_mode = 2
|
||||
offset_top = 112.0
|
||||
offset_right = 1146.0
|
||||
offset_bottom = 643.0
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 3
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="FooterContentSplit" type="VBoxContainer" parent="HeaderContentSplit/MarginContainer"]
|
||||
layout_mode = 2
|
||||
offset_right = 1146.0
|
||||
offset_bottom = 531.0
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 3
|
||||
|
||||
[node name="Panel" type="MarginContainer" parent="HeaderContentSplit/MarginContainer/FooterContentSplit"]
|
||||
layout_mode = 2
|
||||
offset_right = 1146.0
|
||||
offset_bottom = 527.0
|
||||
size_flags_vertical = 3
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="Panel" type="Panel" parent="HeaderContentSplit/MarginContainer/FooterContentSplit/Panel"]
|
||||
layout_mode = 2
|
||||
offset_right = 1146.0
|
||||
offset_bottom = 527.0
|
||||
|
||||
[node name="Scroll" type="ScrollContainer" parent="HeaderContentSplit/MarginContainer/FooterContentSplit/Panel"]
|
||||
layout_mode = 2
|
||||
offset_right = 1146.0
|
||||
offset_bottom = 527.0
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 3
|
||||
|
||||
[node name="MarginContainer" type="MarginContainer" parent="HeaderContentSplit/MarginContainer/FooterContentSplit/Panel/Scroll"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="TableGrid" type="GridContainer" parent="HeaderContentSplit/MarginContainer/FooterContentSplit/Panel/Scroll/MarginContainer"]
|
||||
layout_mode = 2
|
||||
theme_override_constants/h_separation = 0
|
||||
theme_override_constants/v_separation = 0
|
||||
|
||||
[node name="Label" type="Label" parent="HeaderContentSplit/MarginContainer/FooterContentSplit/Panel"]
|
||||
self_modulate = Color(1, 1, 1, 0.498039)
|
||||
layout_mode = 2
|
||||
offset_right = 1146.0
|
||||
offset_bottom = 527.0
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 3
|
||||
text = "No folder selected!
|
||||
Please select a folder to edit using the text field or Open button above.
|
||||
|
||||
Then, Shift+Click or Ctrl+Click cells to edit them using the keyboard,
|
||||
Inspector dock or this screen's bottom panels.
|
||||
|
||||
To find out keybindings available, open the \"About\" menu."
|
||||
horizontal_alignment = 1
|
||||
vertical_alignment = 1
|
||||
|
||||
[node name="Footer" type="VBoxContainer" parent="HeaderContentSplit/MarginContainer/FooterContentSplit"]
|
||||
layout_mode = 2
|
||||
offset_top = 531.0
|
||||
offset_right = 1146.0
|
||||
offset_bottom = 531.0
|
||||
|
||||
[node name="PropertyEditors" type="VBoxContainer" parent="HeaderContentSplit/MarginContainer/FooterContentSplit/Footer"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
offset_right = 1146.0
|
||||
|
||||
[node name="EditArray" parent="HeaderContentSplit/MarginContainer/FooterContentSplit/Footer/PropertyEditors" instance=ExtResource("12")]
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
|
||||
[node name="EditColor" parent="HeaderContentSplit/MarginContainer/FooterContentSplit/Footer/PropertyEditors" instance=ExtResource("7")]
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
anchors_preset = 0
|
||||
grow_horizontal = 1
|
||||
|
||||
[node name="EditNumber" parent="HeaderContentSplit/MarginContainer/FooterContentSplit/Footer/PropertyEditors" instance=ExtResource("8")]
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
offset_bottom = 126.0
|
||||
grow_horizontal = 2
|
||||
|
||||
[node name="EditTexture" parent="HeaderContentSplit/MarginContainer/FooterContentSplit/Footer/PropertyEditors" instance=ExtResource("10")]
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
offset_bottom = 286.0
|
||||
|
||||
[node name="Control" type="Control" parent="."]
|
||||
layout_mode = 2
|
||||
anchors_preset = 0
|
||||
offset_left = 3.0
|
||||
offset_right = 1149.0
|
||||
offset_bottom = 643.0
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="FileDialog" type="FileDialog" parent="Control"]
|
||||
title = "Open"
|
||||
size = Vector2i(1168, 630)
|
||||
popup_window = true
|
||||
ok_button_text = "Select Current Folder"
|
||||
mode_overrides_title = false
|
||||
file_mode = 2
|
||||
|
||||
[node name="Control" type="Control" parent="Control/FileDialog"]
|
||||
custom_minimum_size = Vector2i(1152, 573)
|
||||
layout_mode = 3
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_left = 8.0
|
||||
offset_top = 8.0
|
||||
offset_right = 8.0
|
||||
offset_bottom = -67.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
auto_translate = false
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="Info" type="AcceptDialog" parent="Control"]
|
||||
title = "About"
|
||||
size = Vector2i(1000, 500)
|
||||
popup_window = true
|
||||
|
||||
[node name="MarginContainer" type="MarginContainer" parent="Control/Info"]
|
||||
custom_minimum_size = Vector2i(1000, 500)
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_left = 8.0
|
||||
offset_top = 8.0
|
||||
offset_right = -144.0
|
||||
offset_bottom = -140.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
|
||||
[node name="Panel" type="Panel" parent="Control/Info/MarginContainer"]
|
||||
layout_mode = 2
|
||||
offset_right = 1000.0
|
||||
offset_bottom = 500.0
|
||||
|
||||
[node name="RichTextLabel" type="RichTextLabel" parent="Control/Info/MarginContainer"]
|
||||
layout_mode = 2
|
||||
offset_right = 1000.0
|
||||
offset_bottom = 500.0
|
||||
bbcode_enabled = true
|
||||
text = "Edit Resources as Spreadsheet
|
||||
|
||||
\"Welp, it is what it sounds like!\"
|
||||
|
||||
Possible inputs:
|
||||
- Ctrl + Click / Cmd + Click - Select multiple cells in one column
|
||||
- Shift + Click - Select all cells between A and B in one column
|
||||
- Left/Right - Move cursor along cell text
|
||||
- Backspace/Delete - Erase text Left / Right from cursor
|
||||
- Home/End - Move cursor to start/end of cell
|
||||
- Ctrl + <move/erase> / Cmd + <move/erase> - Move through / Erase whole word
|
||||
- Ctrl/Cmd + C/V - Copy cells / Paste text into cells
|
||||
- Ctrl/Cmd + (Shift) + Z - The Savior
|
||||
If clipboard contains as many lines as there are cells selected, each line is pasted into a separate cell.
|
||||
|
||||
Made by Don Tnowe. 2022.
|
||||
https://twitter.com/don_tnowe
|
||||
Issues and contribution:
|
||||
https://github.com/don-tnowe/godot-resources-as-sheets-plugin"
|
||||
|
||||
[node name="Settings" type="AcceptDialog" parent="Control"]
|
||||
title = "Settings"
|
||||
size = Vector2i(600, 320)
|
||||
popup_window = true
|
||||
|
||||
[node name="MarginContainer" type="ScrollContainer" parent="Control/Settings"]
|
||||
custom_minimum_size = Vector2i(600, 320)
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_left = 8.0
|
||||
offset_top = 8.0
|
||||
offset_right = -556.0
|
||||
offset_bottom = -377.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
|
||||
[node name="RichTextLabel" type="VBoxContainer" parent="Control/Settings/MarginContainer"]
|
||||
layout_mode = 2
|
||||
offset_right = 600.0
|
||||
offset_bottom = 320.0
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 3
|
||||
|
||||
[node name="GridContainer" type="GridContainer" parent="Control/Settings/MarginContainer/RichTextLabel"]
|
||||
layout_mode = 2
|
||||
offset_right = 588.0
|
||||
offset_bottom = 192.0
|
||||
columns = 2
|
||||
script = ExtResource("14")
|
||||
|
||||
[node name="Label" type="Label" parent="Control/Settings/MarginContainer/RichTextLabel/GridContainer"]
|
||||
layout_mode = 2
|
||||
offset_top = 2.0
|
||||
offset_right = 501.0
|
||||
offset_bottom = 28.0
|
||||
size_flags_horizontal = 3
|
||||
text = "Color-type cells style rows"
|
||||
autowrap_mode = 2
|
||||
|
||||
[node name="ColorRows" type="CheckBox" parent="Control/Settings/MarginContainer/RichTextLabel/GridContainer"]
|
||||
layout_mode = 2
|
||||
offset_left = 505.0
|
||||
offset_right = 588.0
|
||||
offset_bottom = 31.0
|
||||
button_pressed = true
|
||||
text = "Enable"
|
||||
|
||||
[node name="Label2" type="Label" parent="Control/Settings/MarginContainer/RichTextLabel/GridContainer"]
|
||||
layout_mode = 2
|
||||
offset_top = 37.0
|
||||
offset_right = 501.0
|
||||
offset_bottom = 63.0
|
||||
size_flags_horizontal = 3
|
||||
text = "Colored array elements"
|
||||
autowrap_mode = 2
|
||||
|
||||
[node name="ColorArrays" type="CheckBox" parent="Control/Settings/MarginContainer/RichTextLabel/GridContainer"]
|
||||
layout_mode = 2
|
||||
offset_left = 505.0
|
||||
offset_top = 35.0
|
||||
offset_right = 588.0
|
||||
offset_bottom = 66.0
|
||||
button_pressed = true
|
||||
text = "Enable"
|
||||
|
||||
[node name="Label3" type="Label" parent="Control/Settings/MarginContainer/RichTextLabel/GridContainer"]
|
||||
layout_mode = 2
|
||||
offset_top = 72.0
|
||||
offset_right = 501.0
|
||||
offset_bottom = 98.0
|
||||
size_flags_horizontal = 3
|
||||
text = "Array cell min width"
|
||||
autowrap_mode = 2
|
||||
|
||||
[node name="ArrayMinWidth" type="SpinBox" parent="Control/Settings/MarginContainer/RichTextLabel/GridContainer"]
|
||||
layout_mode = 2
|
||||
offset_left = 505.0
|
||||
offset_top = 70.0
|
||||
offset_right = 588.0
|
||||
offset_bottom = 101.0
|
||||
min_value = 32.0
|
||||
max_value = 512.0
|
||||
value = 128.0
|
||||
|
||||
[node name="Label4" type="Label" parent="Control/Settings/MarginContainer/RichTextLabel/GridContainer"]
|
||||
layout_mode = 2
|
||||
offset_top = 105.0
|
||||
offset_right = 501.0
|
||||
offset_bottom = 157.0
|
||||
size_flags_horizontal = 3
|
||||
text = "Clip header text (more compact view but header text wont be fully visible) (restart when switching)"
|
||||
autowrap_mode = 2
|
||||
|
||||
[node name="ClipHeaders" type="CheckBox" parent="Control/Settings/MarginContainer/RichTextLabel/GridContainer"]
|
||||
layout_mode = 2
|
||||
offset_left = 505.0
|
||||
offset_top = 105.0
|
||||
offset_right = 588.0
|
||||
offset_bottom = 157.0
|
||||
button_pressed = true
|
||||
text = "Enable"
|
||||
|
||||
[node name="Label5" type="Label" parent="Control/Settings/MarginContainer/RichTextLabel/GridContainer"]
|
||||
layout_mode = 2
|
||||
offset_top = 163.0
|
||||
offset_right = 501.0
|
||||
offset_bottom = 189.0
|
||||
size_flags_horizontal = 3
|
||||
text = "Duplicate arrays on edit (slower, but can be undone)"
|
||||
autowrap_mode = 2
|
||||
|
||||
[node name="DupeArrays" type="CheckBox" parent="Control/Settings/MarginContainer/RichTextLabel/GridContainer"]
|
||||
layout_mode = 2
|
||||
offset_left = 505.0
|
||||
offset_top = 161.0
|
||||
offset_right = 588.0
|
||||
offset_bottom = 192.0
|
||||
button_pressed = true
|
||||
text = "Enable"
|
||||
|
||||
[connection signal="pressed" from="HeaderContentSplit/VBoxContainer/MenuStrip/File" to="." method="_on_File_pressed"]
|
||||
[connection signal="pressed" from="HeaderContentSplit/VBoxContainer/MenuStrip/SearchProcess" to="." method="_on_SearchProcess_pressed"]
|
||||
[connection signal="pressed" from="HeaderContentSplit/VBoxContainer/MenuStrip/Settings" to="Control/Settings" method="popup_centered"]
|
||||
[connection signal="pressed" from="HeaderContentSplit/VBoxContainer/MenuStrip/Info" to="Control/Info" method="popup_centered"]
|
||||
[connection signal="pressed" from="HeaderContentSplit/VBoxContainer/HBoxContainer/HBoxContainer/SelectDir" to="Control/FileDialog" method="popup_centered"]
|
||||
[connection signal="pressed" from="HeaderContentSplit/VBoxContainer/HBoxContainer/HBoxContainer/DeletePath" to="." method="remove_selected_path_from_recent"]
|
||||
[connection signal="item_selected" from="HeaderContentSplit/VBoxContainer/HBoxContainer/HBoxContainer2/RecentPaths" to="." method="_on_RecentPaths_item_selected"]
|
||||
[connection signal="pressed" from="HeaderContentSplit/VBoxContainer/HBoxContainer3/Refresh" to="." method="_on_Path_text_entered"]
|
||||
[connection signal="dir_selected" from="Control/FileDialog" to="." method="_on_FileDialog_dir_selected"]
|
@ -5,5 +5,5 @@ description="Edit Many Resources from one Folder as a table.
|
||||
|
||||
Heavily inspired by Multi-Cursor-Editing in text editors, so after selecting multiple cells (in the same column!) using Ctrl+Click or Shift+Click, most Basic-to-Intermediate movements should be available."
|
||||
author="Don Tnowe"
|
||||
version="1.4.1"
|
||||
version="2.0"
|
||||
script="plugin.gd"
|
@ -1,17 +1,17 @@
|
||||
tool
|
||||
@tool
|
||||
extends EditorPlugin
|
||||
|
||||
var editor_view : Control
|
||||
var undo_redo : UndoRedo
|
||||
var undo_redo : EditorUndoRedoManager
|
||||
|
||||
|
||||
func _enter_tree() -> void:
|
||||
editor_view = load(get_script().resource_path.get_base_dir() + "/editor_view.tscn").instance()
|
||||
editor_view = load(get_script().resource_path.get_base_dir() + "/editor_view.tscn").instantiate()
|
||||
editor_view.editor_interface = get_editor_interface()
|
||||
editor_view.editor_plugin = self
|
||||
undo_redo = get_undo_redo()
|
||||
get_editor_interface().get_editor_viewport().add_child(editor_view)
|
||||
make_visible(false)
|
||||
get_editor_interface().get_editor_main_screen().add_child(editor_view)
|
||||
_make_visible(false)
|
||||
|
||||
|
||||
func _exit_tree() -> void:
|
||||
@ -19,21 +19,21 @@ func _exit_tree() -> void:
|
||||
editor_view.queue_free()
|
||||
|
||||
|
||||
func get_plugin_name():
|
||||
func _get_plugin_name():
|
||||
return "Sheets"
|
||||
|
||||
|
||||
func make_visible(visible):
|
||||
|
||||
func _make_visible(visible):
|
||||
if is_instance_valid(editor_view):
|
||||
editor_view.visible = visible
|
||||
if visible:
|
||||
editor_view.display_folder(editor_view.current_path)
|
||||
|
||||
|
||||
func has_main_screen():
|
||||
func _has_main_screen():
|
||||
return true
|
||||
|
||||
|
||||
func get_plugin_icon():
|
||||
func _get_plugin_icon():
|
||||
# Until I add an actual icon, this'll do.
|
||||
return get_editor_interface().get_base_control().get_icon("VisualScriptComment", "EditorIcons")
|
||||
return get_editor_interface().get_base_control().get_theme_icon("GridContainer", "EditorIcons")
|
1
addons/resources_spreadsheet_view/saved_state.json
Normal file
1
addons/resources_spreadsheet_view/saved_state.json
Normal file
@ -0,0 +1 @@
|
||||
{"recent_paths":["res://example/Random Upgrades/upgrades"]}
|
41
addons/resources_spreadsheet_view/settings_grid.gd
Normal file
41
addons/resources_spreadsheet_view/settings_grid.gd
Normal file
@ -0,0 +1,41 @@
|
||||
@tool
|
||||
class_name SettingsGrid
|
||||
extends GridContainer
|
||||
|
||||
const SETTING_PREFIX = "addons/resources_spreadsheet_view/"
|
||||
|
||||
|
||||
func _ready():
|
||||
for x in get_children():
|
||||
var setting = SETTING_PREFIX + camel_case_to_snake_case(x.name)
|
||||
if x is BaseButton:
|
||||
x.toggled.connect(_set_setting.bind(setting))
|
||||
if !ProjectSettings.has_setting(setting):
|
||||
_set_setting(x.button_pressed, setting)
|
||||
|
||||
else:
|
||||
x.button_pressed = ProjectSettings.get_setting(setting)
|
||||
|
||||
elif x is Range:
|
||||
x.value_changed.connect(_set_setting.bind(setting))
|
||||
if !ProjectSettings.has_setting(setting):
|
||||
_set_setting(x.value, setting)
|
||||
|
||||
else:
|
||||
x.value = ProjectSettings.get_setting(setting)
|
||||
|
||||
|
||||
static func camel_case_to_snake_case(string : String) -> String:
|
||||
var i = 0
|
||||
while i < string.length():
|
||||
if string.unicode_at(i) < 97:
|
||||
string = string.left(i) + ("_" if i > 0 else "") + string[i].to_lower() + string.substr(i + 1)
|
||||
i += 1
|
||||
|
||||
i += 1
|
||||
|
||||
return string
|
||||
|
||||
|
||||
func _set_setting(new_value, setting):
|
||||
ProjectSettings.set_setting(setting, new_value)
|
23
addons/resources_spreadsheet_view/table_header.tscn
Normal file
23
addons/resources_spreadsheet_view/table_header.tscn
Normal file
@ -0,0 +1,23 @@
|
||||
[gd_scene format=3 uid="uid://bvafuebbwx7yl"]
|
||||
|
||||
[node name="Header" type="HBoxContainer"]
|
||||
offset_bottom = 31.0
|
||||
grow_horizontal = 2
|
||||
size_flags_horizontal = 3
|
||||
theme_override_constants/separation = 0
|
||||
|
||||
[node name="Button" type="Button" parent="."]
|
||||
layout_mode = 2
|
||||
offset_right = 8.0
|
||||
offset_bottom = 31.0
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 0
|
||||
text = "resource_name"
|
||||
clip_text = true
|
||||
|
||||
[node name="Button2" type="Button" parent="."]
|
||||
layout_mode = 2
|
||||
offset_left = 8.0
|
||||
offset_right = 38.0
|
||||
offset_bottom = 31.0
|
||||
text = "|| "
|
@ -1,26 +1,26 @@
|
||||
class_name TextEditingUtils
|
||||
extends Reference
|
||||
extends RefCounted
|
||||
|
||||
const non_typing_paragraph := "¶"
|
||||
const non_typing_space := "●"
|
||||
const whitespace_chars := [
|
||||
ord(" "),
|
||||
ord(","),
|
||||
ord(":"),
|
||||
ord("-"),
|
||||
ord(";"),
|
||||
ord("("),
|
||||
ord(")"),
|
||||
ord("."),
|
||||
ord(non_typing_paragraph),
|
||||
ord(non_typing_space),
|
||||
32, # " "
|
||||
44, # ","
|
||||
58, # ":"
|
||||
45, # "-"
|
||||
59, # ";"
|
||||
40, # "("
|
||||
41, # ")"
|
||||
46, # "."
|
||||
182, # "¶" Linefeed
|
||||
967, # "●" Whitespace
|
||||
]
|
||||
|
||||
|
||||
static func is_character_whitespace(text : String, idx : int) -> bool:
|
||||
if idx <= 0: return true # Stop at the edges.
|
||||
if idx >= text.length(): return true
|
||||
return text.ord_at(idx) in whitespace_chars
|
||||
return text.unicode_at(idx) in whitespace_chars
|
||||
|
||||
|
||||
static func show_non_typing(text : String) -> String:
|
||||
@ -89,7 +89,7 @@ static func multi_move_right(values : Array, cursor_positions : Array, ctrl_pres
|
||||
|
||||
|
||||
static func multi_paste(values : Array, cursor_positions : Array):
|
||||
var pasted_lines := OS.clipboard.split("\n")
|
||||
var pasted_lines := DisplayServer.clipboard_get().split("\n")
|
||||
var paste_each_line := pasted_lines.size() == values.size()
|
||||
|
||||
for i in values.size():
|
||||
@ -112,7 +112,7 @@ static func multi_copy(values : Array):
|
||||
for i in values.size():
|
||||
values[i] = values[i]
|
||||
|
||||
OS.clipboard = "\n".join(values)
|
||||
DisplayServer.clipboard_set("\n".join(values))
|
||||
|
||||
|
||||
static func multi_input(input_char : String, values : Array, cursor_positions : Array):
|
33
addons/resources_spreadsheet_view/typed_cells/array.tscn
Normal file
33
addons/resources_spreadsheet_view/typed_cells/array.tscn
Normal file
@ -0,0 +1,33 @@
|
||||
[gd_scene format=3 uid="uid://cmy06m1kg5ukf"]
|
||||
|
||||
[node name="Label" type="MarginContainer"]
|
||||
custom_minimum_size = Vector2i(80, 32)
|
||||
size_flags_vertical = 9
|
||||
mouse_filter = 0
|
||||
|
||||
[node name="Box" type="HFlowContainer" parent="."]
|
||||
layout_mode = 2
|
||||
offset_right = 80.0
|
||||
offset_bottom = 32.0
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="Back" type="LineEdit" parent="."]
|
||||
show_behind_parent = true
|
||||
layout_mode = 2
|
||||
offset_right = 80.0
|
||||
offset_bottom = 32.0
|
||||
focus_mode = 0
|
||||
mouse_filter = 2
|
||||
editable = false
|
||||
expand_to_text_length = true
|
||||
context_menu_enabled = false
|
||||
virtual_keyboard_enabled = false
|
||||
caret_blink = true
|
||||
|
||||
[node name="Selected" type="ColorRect" parent="."]
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
offset_right = 80.0
|
||||
offset_bottom = 32.0
|
||||
mouse_filter = 2
|
||||
color = Color(1, 1, 1, 0.247059)
|
29
addons/resources_spreadsheet_view/typed_cells/basic.tscn
Normal file
29
addons/resources_spreadsheet_view/typed_cells/basic.tscn
Normal file
@ -0,0 +1,29 @@
|
||||
[gd_scene format=3 uid="uid://cf55cbb2buavn"]
|
||||
|
||||
[node name="Label" type="Label"]
|
||||
custom_minimum_size = Vector2i(80, 32)
|
||||
size_flags_vertical = 9
|
||||
mouse_filter = 0
|
||||
|
||||
[node name="Back" type="LineEdit" parent="."]
|
||||
show_behind_parent = true
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
focus_mode = 0
|
||||
mouse_filter = 2
|
||||
editable = false
|
||||
expand_to_text_length = true
|
||||
context_menu_enabled = false
|
||||
virtual_keyboard_enabled = false
|
||||
caret_blink = true
|
||||
|
||||
[node name="Selected" type="ColorRect" parent="."]
|
||||
visible = false
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
mouse_filter = 2
|
||||
color = Color(1, 1, 1, 0.247059)
|
32
addons/resources_spreadsheet_view/typed_cells/cell_editor.gd
Normal file
32
addons/resources_spreadsheet_view/typed_cells/cell_editor.gd
Normal file
@ -0,0 +1,32 @@
|
||||
class_name CellEditor
|
||||
extends RefCounted
|
||||
|
||||
const CELL_SCENE_DIR = "res://addons/resources_spreadsheet_view/typed_cells/"
|
||||
|
||||
var hint_strings_array := []
|
||||
|
||||
|
||||
## Override to define where the cell should be shown.
|
||||
func can_edit_value(value, type, property_hint) -> bool:
|
||||
return value != null
|
||||
|
||||
## Override to change how the cell is created; preload a scene or create nodes from code.
|
||||
## Caller is an instance of `editor_view.tscn`.
|
||||
func create_cell(caller : Control) -> Control:
|
||||
return load(CELL_SCENE_DIR + "basic.tscn").instantiate()
|
||||
|
||||
## Override to change behaviour when the cell is clicked to be selected.
|
||||
func set_selected(node : Control, selected : bool):
|
||||
node.get_node("Selected").visible = selected
|
||||
|
||||
## Override to change how the value is displayed.
|
||||
func set_value(node : Control, value):
|
||||
node.text = TextEditingUtils.show_non_typing(str(value))
|
||||
|
||||
## Override to prevent the cell from being edited as text.
|
||||
func is_text():
|
||||
return true
|
||||
|
||||
## Override to change behaviour when the cell's color changes.
|
||||
func set_color(node : Control, color : Color):
|
||||
node.get_node("Back").modulate = color * 1.0
|
@ -2,16 +2,16 @@ extends CellEditor
|
||||
|
||||
|
||||
func can_edit_value(value, type, property_hint) -> bool:
|
||||
return type == TYPE_STRING_ARRAY || type == TYPE_ARRAY
|
||||
return type == TYPE_PACKED_STRING_ARRAY || type == TYPE_ARRAY
|
||||
|
||||
|
||||
func create_cell(caller : Control) -> Control:
|
||||
return load(CELL_SCENE_DIR + "array.tscn").instance()
|
||||
return load(CELL_SCENE_DIR + "array.tscn").instantiate()
|
||||
|
||||
|
||||
func set_value(node : Control, value):
|
||||
var children = node.get_node("Box").get_children()
|
||||
node.rect_min_size.x = ProjectSettings.get_setting(SettingsGrid.SETTING_PREFIX + "array_min_width")
|
||||
node.custom_minimum_size.x = ProjectSettings.get_setting(SettingsGrid.SETTING_PREFIX + "array_min_width")
|
||||
var colored = ProjectSettings.get_setting(SettingsGrid.SETTING_PREFIX + "color_arrays")
|
||||
while children.size() < value.size():
|
||||
children.append(Label.new())
|
||||
@ -24,7 +24,9 @@ func set_value(node : Control, value):
|
||||
else:
|
||||
children[i].visible = true
|
||||
children[i].text = str(value[i])
|
||||
children[i].self_modulate = Color.white if !colored else Color(str(value[i]).hash()) + Color(0.25, 0.25, 0.25, 1.0)
|
||||
children[i].self_modulate = \
|
||||
Color.WHITE if !colored else \
|
||||
Color(str(value[i]).hash()) + Color(0.25, 0.25, 0.25, 1.0)
|
||||
|
||||
|
||||
func is_text():
|
@ -0,0 +1,36 @@
|
||||
extends CellEditor
|
||||
|
||||
var _cached_color := Color.WHITE
|
||||
|
||||
|
||||
func create_cell(caller : Control) -> Control:
|
||||
var node : Label = load(CELL_SCENE_DIR + "basic.tscn").instantiate()
|
||||
var color := ColorRect.new()
|
||||
node.horizontal_alignment = HORIZONTAL_ALIGNMENT_RIGHT
|
||||
node.custom_minimum_size.x = 56
|
||||
node.add_child(color)
|
||||
color.name = "Color"
|
||||
call_deferred("_resize_color_rect", color)
|
||||
return node
|
||||
|
||||
|
||||
func _resize_color_rect(rect : ColorRect):
|
||||
rect.size = Vector2(8, 0)
|
||||
rect.anchors_preset = Control.PRESET_LEFT_WIDE
|
||||
await rect.get_tree().process_frame
|
||||
rect.size.x = 8
|
||||
|
||||
|
||||
func can_edit_value(value, type, property_hint) -> bool:
|
||||
return type == TYPE_COLOR
|
||||
|
||||
|
||||
func set_value(node : Control, value):
|
||||
if value is String:
|
||||
node.text = TextEditingUtils.show_non_typing(str(value))
|
||||
|
||||
else:
|
||||
node.text = value.to_html(true)
|
||||
_cached_color = value
|
||||
|
||||
node.get_node("Color").color = value
|
@ -6,9 +6,9 @@ func can_edit_value(value, type, property_hint) -> bool:
|
||||
|
||||
|
||||
func set_value(node : Control, value):
|
||||
node.text = "<" + hint_strings_array[node.get_position_in_parent() % node.get_parent().columns][value] + ">"
|
||||
node.text = "<" + hint_strings_array[node.get_index() % node.get_parent().columns][value] + ">"
|
||||
node.self_modulate = Color(node.text.hash()) + Color(0.25, 0.25, 0.25, 1.0)
|
||||
node.align = Label.ALIGN_CENTER
|
||||
node.horizontal_alignment = HORIZONTAL_ALIGNMENT_CENTER
|
||||
|
||||
|
||||
func is_text():
|
@ -11,7 +11,7 @@ func create_cell(caller : Control) -> Control:
|
||||
if previewer == null:
|
||||
previewer = caller.editor_plugin.get_editor_interface().get_resource_previewer()
|
||||
|
||||
var node = load(CELL_SCENE_DIR + "resource.tscn").instance()
|
||||
var node = load(CELL_SCENE_DIR + "resource.tscn").instantiate()
|
||||
return node
|
||||
|
||||
|
||||
@ -24,14 +24,14 @@ func set_value(node : Control, value):
|
||||
if !value is Resource: return
|
||||
|
||||
node.editor_description = value.resource_path
|
||||
node.get_node("Box/Label").text = value.resource_name + "[" + value.resource_path.get_file().get_basename() + "]"
|
||||
node.get_node("Box/Label").text = "[" + value.resource_path.get_file().get_basename() + "]"
|
||||
if value is Texture:
|
||||
node.get_node("Box/Tex").visible = true
|
||||
node.get_node("Box/Tex").texture = value
|
||||
|
||||
else:
|
||||
node.get_node("Box/Tex").visible = false
|
||||
previewer.queue_resource_preview(value.resource_path, self, "_on_preview_loaded", node)
|
||||
previewer.queue_resource_preview(value.resource_path, self, &"_on_preview_loaded", node)
|
||||
|
||||
|
||||
func set_color(node : Control, color : Color):
|
55
addons/resources_spreadsheet_view/typed_cells/resource.tscn
Normal file
55
addons/resources_spreadsheet_view/typed_cells/resource.tscn
Normal file
@ -0,0 +1,55 @@
|
||||
[gd_scene load_steps=2 format=3 uid="uid://c883vslpx6ajp"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://c08qavfwqr3k7" path="res://icon.png" id="1"]
|
||||
|
||||
[node name="Label" type="MarginContainer"]
|
||||
offset_right = 127.0
|
||||
offset_bottom = 64.0
|
||||
mouse_filter = 0
|
||||
|
||||
[node name="Back" type="LineEdit" parent="."]
|
||||
show_behind_parent = true
|
||||
layout_mode = 2
|
||||
offset_right = 127.0
|
||||
offset_bottom = 64.0
|
||||
focus_mode = 0
|
||||
mouse_filter = 2
|
||||
editable = false
|
||||
expand_to_text_length = true
|
||||
context_menu_enabled = false
|
||||
virtual_keyboard_enabled = false
|
||||
caret_blink = true
|
||||
|
||||
[node name="Selected" type="ColorRect" parent="."]
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
offset_right = 127.0
|
||||
offset_bottom = 64.0
|
||||
mouse_filter = 2
|
||||
color = Color(1, 1, 1, 0.247059)
|
||||
|
||||
[node name="Box" type="HBoxContainer" parent="."]
|
||||
layout_mode = 2
|
||||
offset_right = 127.0
|
||||
offset_bottom = 64.0
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="Tex" type="TextureRect" parent="Box"]
|
||||
custom_minimum_size = Vector2i(64, 64)
|
||||
layout_mode = 2
|
||||
offset_right = 64.0
|
||||
offset_bottom = 64.0
|
||||
mouse_filter = 2
|
||||
texture = ExtResource("1")
|
||||
ignore_texture_size = true
|
||||
stretch_mode = 5
|
||||
|
||||
[node name="Label" type="Label" parent="Box"]
|
||||
layout_mode = 2
|
||||
offset_left = 68.0
|
||||
offset_top = 19.0
|
||||
offset_right = 127.0
|
||||
offset_bottom = 45.0
|
||||
size_flags_horizontal = 3
|
||||
text = "res.tres"
|
||||
horizontal_alignment = 1
|
@ -1,16 +1,17 @@
|
||||
tool
|
||||
@tool
|
||||
extends SheetsDockEditor
|
||||
|
||||
onready var recent_container := $"HBoxContainer/Control2/HBoxContainer/HFlowContainer"
|
||||
onready var contents_label := $"HBoxContainer/HBoxContainer/Panel/Label"
|
||||
onready var button_box := $"HBoxContainer/HBoxContainer/Control/VBoxContainer/HBoxContainer"
|
||||
onready var value_input := $"HBoxContainer/HBoxContainer/Control/VBoxContainer/LineEdit"
|
||||
@onready var recent_container := $"HBoxContainer/Control2/HBoxContainer/HFlowContainer"
|
||||
@onready var contents_label := $"HBoxContainer/HBoxContainer/Panel/Label"
|
||||
@onready var button_box := $"HBoxContainer/HBoxContainer/Control/VBoxContainer/HBoxContainer"
|
||||
@onready var value_input := $"HBoxContainer/HBoxContainer/Control/VBoxContainer/LineEdit"
|
||||
|
||||
var _stored_value
|
||||
var _stored_type := 0
|
||||
|
||||
|
||||
func _ready():
|
||||
super._ready()
|
||||
if recent_container.get_child(1).get_item_count() < 3:
|
||||
recent_container.get_child(1).add_item("Add")
|
||||
recent_container.get_child(1).add_item("Erase")
|
||||
@ -20,8 +21,9 @@ func _ready():
|
||||
|
||||
func try_edit_value(value, type, propert_hint) -> bool:
|
||||
if (
|
||||
type != TYPE_ARRAY and type != TYPE_STRING_ARRAY
|
||||
and type != TYPE_INT_ARRAY and type != TYPE_REAL_ARRAY
|
||||
type != TYPE_ARRAY and type != TYPE_PACKED_STRING_ARRAY
|
||||
and type != TYPE_PACKED_INT32_ARRAY and type != TYPE_PACKED_FLOAT32_ARRAY
|
||||
and type != TYPE_PACKED_INT64_ARRAY and type != TYPE_PACKED_FLOAT64_ARRAY
|
||||
):
|
||||
return false
|
||||
|
||||
@ -30,9 +32,9 @@ func try_edit_value(value, type, propert_hint) -> bool:
|
||||
contents_label.text = str(value)
|
||||
|
||||
var is_generic_array = _stored_type == TYPE_ARRAY
|
||||
button_box.get_child(1).visible = is_generic_array or _stored_type == TYPE_STRING_ARRAY
|
||||
button_box.get_child(2).visible = is_generic_array or _stored_type == TYPE_INT_ARRAY
|
||||
button_box.get_child(3).visible = is_generic_array or _stored_type == TYPE_REAL_ARRAY
|
||||
button_box.get_child(1).visible = is_generic_array or _stored_type == TYPE_PACKED_STRING_ARRAY
|
||||
button_box.get_child(2).visible = is_generic_array or _stored_type == TYPE_PACKED_INT32_ARRAY or _stored_type == TYPE_PACKED_INT64_ARRAY
|
||||
button_box.get_child(3).visible = is_generic_array or _stored_type == TYPE_PACKED_FLOAT32_ARRAY or _stored_type == TYPE_PACKED_FLOAT64_ARRAY
|
||||
button_box.get_child(4).visible = is_generic_array
|
||||
|
||||
return true
|
||||
@ -55,9 +57,9 @@ func _add_value(value):
|
||||
|
||||
|
||||
func _remove_value(value):
|
||||
_stored_value.erase(value)
|
||||
_stored_value.remove_at(_stored_value.find(value))
|
||||
var values = sheet.get_edited_cells_values()
|
||||
var cur_value
|
||||
var cur_value : Array
|
||||
var dupe_array : bool = ProjectSettings.get_setting(SettingsGrid.SETTING_PREFIX + "dupe_arrays")
|
||||
for i in values.size():
|
||||
cur_value = values[i]
|
||||
@ -65,7 +67,7 @@ func _remove_value(value):
|
||||
cur_value = cur_value.duplicate()
|
||||
|
||||
if cur_value.has(value): # erase() not defined in PoolArrays
|
||||
cur_value.remove(cur_value.find(value))
|
||||
cur_value.remove_at(cur_value.find(value))
|
||||
|
||||
values[i] = cur_value
|
||||
|
||||
@ -80,7 +82,7 @@ func _add_recent(value):
|
||||
var node := Button.new()
|
||||
node.text = str(value)
|
||||
node.self_modulate = Color(value.hash()) + Color(0.25, 0.25, 0.25, 1.0)
|
||||
node.connect("pressed", self, "_on_recent_clicked", [node, value])
|
||||
node.pressed.connect(_on_recent_clicked.bind(node, value))
|
||||
recent_container.add_child(node)
|
||||
|
||||
|
||||
@ -98,7 +100,11 @@ func _on_recent_clicked(button, value):
|
||||
|
||||
|
||||
func _on_Remove_pressed():
|
||||
_remove_value(str2var(value_input.text))
|
||||
if str_to_var(value_input.text) != null:
|
||||
_remove_value(str_to_var(value_input.text))
|
||||
|
||||
else:
|
||||
_remove_value(value_input.text)
|
||||
|
||||
|
||||
func _on_ClearRecent_pressed():
|
||||
@ -108,20 +114,21 @@ func _on_ClearRecent_pressed():
|
||||
|
||||
|
||||
func _on_Float_pressed():
|
||||
_add_value(float(value_input.text))
|
||||
_add_value(value_input.text.to_float())
|
||||
|
||||
|
||||
func _on_Int_pressed():
|
||||
_add_value(int(value_input.text))
|
||||
_add_value(value_input.text.to_int())
|
||||
|
||||
|
||||
func _on_String_pressed():
|
||||
if value_input.text == "": return
|
||||
_add_value(value_input.text)
|
||||
_add_recent(value_input.text)
|
||||
|
||||
|
||||
func _on_Variant_pressed():
|
||||
_add_value(str2var(value_input.text))
|
||||
_add_value(str_to_var(value_input.text))
|
||||
|
||||
|
||||
func _on_AddRecentFromSel_pressed():
|
251
addons/resources_spreadsheet_view/typed_editors/dock_array.tscn
Normal file
251
addons/resources_spreadsheet_view/typed_editors/dock_array.tscn
Normal file
@ -0,0 +1,251 @@
|
||||
[gd_scene load_steps=5 format=3 uid="uid://c3a2cip8ffccv"]
|
||||
|
||||
[ext_resource type="Script" path="res://addons/resources_spreadsheet_view/typed_editors/dock_array.gd" id="1"]
|
||||
[ext_resource type="Script" path="res://addons/resources_spreadsheet_view/editor_icon_button.gd" id="2"]
|
||||
|
||||
[sub_resource type="Image" id="Image_x42cr"]
|
||||
data = {
|
||||
"data": PackedByteArray(255, 255, 255, 0, 255, 255, 255, 0, 255, 128, 128, 4, 255, 128, 128, 4, 255, 128, 128, 4, 255, 128, 128, 4, 255, 128, 128, 4, 255, 128, 128, 4, 255, 128, 128, 4, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 93, 93, 131, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 131, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 131, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 93, 93, 252, 255, 93, 93, 252, 255, 93, 93, 252, 255, 94, 94, 127, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 128, 128, 4, 255, 128, 128, 4, 255, 128, 128, 4, 255, 128, 128, 4, 255, 128, 128, 4, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 231, 255, 93, 93, 55, 255, 97, 97, 58, 255, 93, 93, 233, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 231, 255, 94, 94, 54, 255, 94, 94, 57, 255, 93, 93, 233, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 97, 97, 42, 255, 255, 255, 0, 255, 255, 255, 0, 255, 97, 97, 42, 255, 93, 93, 233, 255, 93, 93, 232, 255, 93, 93, 41, 255, 255, 255, 0, 255, 255, 255, 0, 255, 97, 97, 42, 255, 93, 93, 233, 255, 93, 93, 232, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 96, 96, 45, 255, 97, 97, 42, 255, 255, 255, 0, 255, 97, 97, 42, 255, 97, 97, 42, 255, 255, 255, 0, 255, 98, 98, 47, 255, 97, 97, 42, 255, 255, 255, 0, 255, 97, 97, 42, 255, 97, 97, 42, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 96, 96, 45, 255, 93, 93, 235, 255, 93, 93, 233, 255, 97, 97, 42, 255, 255, 255, 0, 255, 255, 255, 0, 255, 94, 94, 46, 255, 93, 93, 236, 255, 93, 93, 233, 255, 97, 97, 42, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 235, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 233, 255, 95, 95, 59, 255, 96, 96, 61, 255, 93, 93, 235, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 233, 255, 95, 95, 59, 255, 96, 96, 61, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 93, 93, 255, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 93, 93, 252, 255, 93, 93, 252, 255, 93, 93, 252, 255, 93, 93, 252, 255, 93, 93, 252, 255, 93, 93, 252, 255, 93, 93, 252, 255, 93, 93, 252, 255, 93, 93, 252, 255, 93, 93, 252, 255, 93, 93, 252, 255, 93, 93, 252, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0),
|
||||
"format": "RGBA8",
|
||||
"height": 16,
|
||||
"mipmaps": false,
|
||||
"width": 16
|
||||
}
|
||||
|
||||
[sub_resource type="ImageTexture" id="ImageTexture_x5nai"]
|
||||
image = SubResource("Image_x42cr")
|
||||
|
||||
[node name="EditArray" type="VBoxContainer"]
|
||||
anchors_preset = 10
|
||||
anchor_right = 1.0
|
||||
offset_bottom = 91.0
|
||||
grow_horizontal = 2
|
||||
size_flags_vertical = 0
|
||||
mouse_filter = 0
|
||||
script = ExtResource("1")
|
||||
|
||||
[node name="Header" type="HBoxContainer" parent="."]
|
||||
layout_mode = 2
|
||||
offset_right = 1152.0
|
||||
offset_bottom = 26.0
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="Header"]
|
||||
layout_mode = 2
|
||||
offset_right = 506.0
|
||||
offset_bottom = 26.0
|
||||
size_flags_horizontal = 3
|
||||
|
||||
[node name="Label" type="Label" parent="Header/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
offset_right = 86.0
|
||||
offset_bottom = 26.0
|
||||
text = "EDIT: Array"
|
||||
|
||||
[node name="HSeparator" type="HSeparator" parent="Header/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
offset_left = 90.0
|
||||
offset_right = 506.0
|
||||
offset_bottom = 26.0
|
||||
size_flags_horizontal = 3
|
||||
|
||||
[node name="Label" type="Label" parent="Header"]
|
||||
layout_mode = 2
|
||||
offset_left = 510.0
|
||||
offset_right = 642.0
|
||||
offset_bottom = 26.0
|
||||
text = "PROPERTY NAME"
|
||||
|
||||
[node name="HSeparator2" type="HSeparator" parent="Header"]
|
||||
layout_mode = 2
|
||||
offset_left = 646.0
|
||||
offset_right = 1152.0
|
||||
offset_bottom = 26.0
|
||||
size_flags_horizontal = 3
|
||||
|
||||
[node name="HBoxContainer" type="HSplitContainer" parent="."]
|
||||
layout_mode = 2
|
||||
offset_top = 30.0
|
||||
offset_right = 1152.0
|
||||
offset_bottom = 91.0
|
||||
split_offset = 640
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="HBoxContainer"]
|
||||
layout_mode = 2
|
||||
offset_right = 640.0
|
||||
offset_bottom = 61.0
|
||||
alignment = 2
|
||||
|
||||
[node name="Panel" type="MarginContainer" parent="HBoxContainer/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
offset_right = 394.0
|
||||
offset_bottom = 61.0
|
||||
size_flags_horizontal = 3
|
||||
|
||||
[node name="Label" type="TextEdit" parent="HBoxContainer/HBoxContainer/Panel"]
|
||||
layout_mode = 2
|
||||
offset_right = 394.0
|
||||
offset_bottom = 61.0
|
||||
size_flags_vertical = 5
|
||||
text = "[]"
|
||||
|
||||
[node name="VSeparator2" type="VSeparator" parent="HBoxContainer/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
offset_left = 398.0
|
||||
offset_right = 402.0
|
||||
offset_bottom = 61.0
|
||||
|
||||
[node name="Control" type="MarginContainer" parent="HBoxContainer/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
offset_left = 406.0
|
||||
offset_right = 632.0
|
||||
offset_bottom = 61.0
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="HBoxContainer/HBoxContainer/Control"]
|
||||
layout_mode = 2
|
||||
offset_right = 226.0
|
||||
offset_bottom = 61.0
|
||||
|
||||
[node name="LineEdit" type="LineEdit" parent="HBoxContainer/HBoxContainer/Control/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
offset_right = 226.0
|
||||
offset_bottom = 31.0
|
||||
placeholder_text = "Input value to add/remove..."
|
||||
clear_button_enabled = true
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="HBoxContainer/HBoxContainer/Control/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
offset_top = 35.0
|
||||
offset_right = 226.0
|
||||
offset_bottom = 61.0
|
||||
|
||||
[node name="Label" type="Label" parent="HBoxContainer/HBoxContainer/Control/VBoxContainer/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
offset_right = 35.0
|
||||
offset_bottom = 26.0
|
||||
text = "Add:"
|
||||
|
||||
[node name="String" type="Button" parent="HBoxContainer/HBoxContainer/Control/VBoxContainer/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
offset_left = 39.0
|
||||
offset_right = 63.0
|
||||
offset_bottom = 26.0
|
||||
tooltip_text = "Add String"
|
||||
icon = SubResource("ImageTexture_x5nai")
|
||||
script = ExtResource("2")
|
||||
icon_name = "String"
|
||||
|
||||
[node name="Int" type="Button" parent="HBoxContainer/HBoxContainer/Control/VBoxContainer/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
offset_left = 67.0
|
||||
offset_right = 91.0
|
||||
offset_bottom = 26.0
|
||||
tooltip_text = "Add Integer"
|
||||
icon = SubResource("ImageTexture_x5nai")
|
||||
script = ExtResource("2")
|
||||
icon_name = "int"
|
||||
|
||||
[node name="Float" type="Button" parent="HBoxContainer/HBoxContainer/Control/VBoxContainer/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
offset_left = 95.0
|
||||
offset_right = 119.0
|
||||
offset_bottom = 26.0
|
||||
tooltip_text = "Add Float"
|
||||
icon = SubResource("ImageTexture_x5nai")
|
||||
script = ExtResource("2")
|
||||
icon_name = "float"
|
||||
|
||||
[node name="Variant" type="Button" parent="HBoxContainer/HBoxContainer/Control/VBoxContainer/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
offset_left = 123.0
|
||||
offset_right = 147.0
|
||||
offset_bottom = 26.0
|
||||
tooltip_text = "Guess Type and Add"
|
||||
icon = SubResource("ImageTexture_x5nai")
|
||||
script = ExtResource("2")
|
||||
icon_name = "Variant"
|
||||
|
||||
[node name="Label2" type="Label" parent="HBoxContainer/HBoxContainer/Control/VBoxContainer/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
offset_left = 151.0
|
||||
offset_right = 198.0
|
||||
offset_bottom = 26.0
|
||||
text = "Erase:"
|
||||
|
||||
[node name="Remove" type="Button" parent="HBoxContainer/HBoxContainer/Control/VBoxContainer/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
offset_left = 202.0
|
||||
offset_right = 226.0
|
||||
offset_bottom = 26.0
|
||||
tooltip_text = "Erase Value from Array"
|
||||
icon = SubResource("ImageTexture_x5nai")
|
||||
script = ExtResource("2")
|
||||
icon_name = "Remove"
|
||||
|
||||
[node name="VSeparator" type="VSeparator" parent="HBoxContainer/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
offset_left = 636.0
|
||||
offset_right = 640.0
|
||||
offset_bottom = 61.0
|
||||
|
||||
[node name="Control2" type="MarginContainer" parent="HBoxContainer"]
|
||||
layout_mode = 2
|
||||
offset_left = 652.0
|
||||
offset_right = 1152.0
|
||||
offset_bottom = 61.0
|
||||
size_flags_horizontal = 3
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="HBoxContainer/Control2"]
|
||||
layout_mode = 2
|
||||
offset_right = 500.0
|
||||
offset_bottom = 61.0
|
||||
alignment = 2
|
||||
|
||||
[node name="VSeparator2" type="VSeparator" parent="HBoxContainer/Control2/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
offset_right = 4.0
|
||||
offset_bottom = 61.0
|
||||
|
||||
[node name="HFlowContainer" type="HFlowContainer" parent="HBoxContainer/Control2/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
offset_left = 8.0
|
||||
offset_right = 500.0
|
||||
offset_bottom = 61.0
|
||||
size_flags_horizontal = 3
|
||||
|
||||
[node name="Label" type="Label" parent="HBoxContainer/Control2/HBoxContainer/HFlowContainer"]
|
||||
layout_mode = 2
|
||||
offset_top = 2.0
|
||||
offset_right = 58.0
|
||||
offset_bottom = 28.0
|
||||
text = "Recent:"
|
||||
|
||||
[node name="OptionButton" type="OptionButton" parent="HBoxContainer/Control2/HBoxContainer/HFlowContainer"]
|
||||
layout_mode = 2
|
||||
offset_left = 62.0
|
||||
offset_right = 258.0
|
||||
offset_bottom = 31.0
|
||||
item_count = 3
|
||||
selected = 0
|
||||
popup/item_0/text = "Add"
|
||||
popup/item_0/id = 0
|
||||
popup/item_1/text = "Erase"
|
||||
popup/item_1/id = 1
|
||||
popup/item_2/text = "Delete From Recent"
|
||||
popup/item_2/id = 2
|
||||
|
||||
[node name="AddRecentFromSel" type="Button" parent="HBoxContainer/Control2/HBoxContainer/HFlowContainer"]
|
||||
layout_mode = 2
|
||||
offset_left = 262.0
|
||||
offset_right = 286.0
|
||||
offset_bottom = 31.0
|
||||
tooltip_text = "Copy Selection into this List"
|
||||
icon = SubResource("ImageTexture_x5nai")
|
||||
script = ExtResource("2")
|
||||
icon_name = "ListSelect"
|
||||
|
||||
[connection signal="pressed" from="HBoxContainer/HBoxContainer/Control/VBoxContainer/HBoxContainer/String" to="." method="_on_String_pressed"]
|
||||
[connection signal="pressed" from="HBoxContainer/HBoxContainer/Control/VBoxContainer/HBoxContainer/Int" to="." method="_on_Int_pressed"]
|
||||
[connection signal="pressed" from="HBoxContainer/HBoxContainer/Control/VBoxContainer/HBoxContainer/Float" to="." method="_on_Float_pressed"]
|
||||
[connection signal="pressed" from="HBoxContainer/HBoxContainer/Control/VBoxContainer/HBoxContainer/Variant" to="." method="_on_Variant_pressed"]
|
||||
[connection signal="pressed" from="HBoxContainer/HBoxContainer/Control/VBoxContainer/HBoxContainer/Remove" to="." method="_on_Remove_pressed"]
|
||||
[connection signal="pressed" from="HBoxContainer/Control2/HBoxContainer/HFlowContainer/AddRecentFromSel" to="." method="_on_AddRecentFromSel_pressed"]
|
@ -1,8 +1,8 @@
|
||||
tool
|
||||
@tool
|
||||
class_name SheetsDockEditor
|
||||
extends Control
|
||||
|
||||
export var path_property_name := NodePath("Header/Label")
|
||||
@export var path_property_name := NodePath("Header/Label")
|
||||
|
||||
var sheet : Control
|
||||
var selection : Array
|
||||
@ -14,8 +14,8 @@ func _ready():
|
||||
parent = parent.get_parent()
|
||||
|
||||
sheet = parent
|
||||
get_node(path_property_name).add_font_override("bold", get_font("bold", "EditorFonts"))
|
||||
get_node(path_property_name).add_theme_font_override("normal", get_theme_font("bold", "EditorFonts"))
|
||||
|
||||
# Override to define when to show the dock and, if it can edit the value, how to handle it.
|
||||
## Override to define when to show the dock and, if it can edit the value, how to handle it.
|
||||
func try_edit_value(value, type, property_hint) -> bool:
|
||||
return true
|
@ -1,15 +1,16 @@
|
||||
tool
|
||||
@tool
|
||||
extends SheetsDockEditor
|
||||
|
||||
onready var _value_rect := $"EditColor/ColorProper/ColorRect"
|
||||
onready var _color_picker_panel := $"EditColor/VSeparator6/Panel"
|
||||
onready var _color_picker := $"EditColor/VSeparator6/Panel/MarginContainer/ColorPicker"
|
||||
onready var _custom_value_edit := $"EditColor/CustomX/LineEdit"
|
||||
@onready var _value_rect := $"EditColor/ColorProper/ColorRect"
|
||||
@onready var _color_picker_panel := $"EditColor/VSeparator6/Panel"
|
||||
@onready var _color_picker := $"EditColor/VSeparator6/Panel/MarginContainer/ColorPicker"
|
||||
@onready var _custom_value_edit := $"EditColor/CustomX/LineEdit"
|
||||
|
||||
var _stored_value := Color.white
|
||||
var _stored_value := Color.WHITE
|
||||
|
||||
|
||||
func _ready():
|
||||
super._ready()
|
||||
_connect_buttons($"EditColor/RGBGrid", 0, 0)
|
||||
_connect_buttons($"EditColor/RGBGrid", 5, 1)
|
||||
_connect_buttons($"EditColor/RGBGrid", 10, 2)
|
||||
@ -19,14 +20,14 @@ func _ready():
|
||||
|
||||
|
||||
func _connect_buttons(grid, start_index, property_bind):
|
||||
grid.get_child(start_index + 0).connect("pressed", self, "_increment_values_custom", [-1.0, property_bind])
|
||||
grid.get_child(start_index + 1).connect("pressed", self, "_increment_values", [-10.0, property_bind])
|
||||
grid.get_child(start_index + 3).connect("pressed", self, "_increment_values", [10.0, property_bind])
|
||||
grid.get_child(start_index + 4).connect("pressed", self, "_increment_values_custom", [1.0, property_bind])
|
||||
grid.get_child(start_index + 0).pressed.connect(_increment_values_custom.bind(-1.0, property_bind))
|
||||
grid.get_child(start_index + 1).pressed.connect(_increment_values.bind(-10.0, property_bind))
|
||||
grid.get_child(start_index + 3).pressed.connect(_increment_values.bind(10.0, property_bind))
|
||||
grid.get_child(start_index + 4).pressed.connect(_increment_values_custom.bind(1.0, property_bind))
|
||||
|
||||
|
||||
func try_edit_value(value, type, property_hint) -> bool:
|
||||
_color_picker_panel.set_as_toplevel(false)
|
||||
_color_picker_panel.top_level = false
|
||||
if type != TYPE_COLOR:
|
||||
return false
|
||||
|
||||
@ -84,22 +85,22 @@ func _increment_values_custom(multiplier : float, property : int):
|
||||
# Numbered buttons increment by 5 for Sat and Value, so hue is x0.5 effect. Negate it here
|
||||
multiplier *= 2.0
|
||||
|
||||
_increment_values(float(_custom_value_edit.text) * multiplier, property)
|
||||
_increment_values(_custom_value_edit.text.to_float() * multiplier, property)
|
||||
|
||||
|
||||
func _on_Button_pressed():
|
||||
_color_picker_panel.visible = !_color_picker_panel.visible
|
||||
if _color_picker_panel.visible:
|
||||
_color_picker_panel.set_as_toplevel(true)
|
||||
_color_picker_panel.rect_global_position = (
|
||||
sheet.rect_global_position
|
||||
+ Vector2(0, sheet.rect_size.y - _color_picker_panel.rect_size.y)
|
||||
_color_picker_panel.top_level = true
|
||||
_color_picker_panel.global_position = (
|
||||
sheet.global_position
|
||||
+ Vector2(0, sheet.size.y - _color_picker_panel.size.y)
|
||||
+ Vector2(16, -16)
|
||||
)
|
||||
_color_picker_panel.rect_global_position.y = clamp(
|
||||
_color_picker_panel.rect_global_position.y,
|
||||
_color_picker_panel.global_position.y = clamp(
|
||||
_color_picker_panel.global_position.y,
|
||||
0,
|
||||
sheet.editor_plugin.get_editor_interface().get_base_control().rect_size.y
|
||||
sheet.editor_plugin.get_editor_interface().get_base_control().size.y
|
||||
)
|
||||
_color_picker.color = _stored_value
|
||||
|
446
addons/resources_spreadsheet_view/typed_editors/dock_color.tscn
Normal file
446
addons/resources_spreadsheet_view/typed_editors/dock_color.tscn
Normal file
@ -0,0 +1,446 @@
|
||||
[gd_scene load_steps=2 format=3 uid="uid://b3a3bo6cfyh5t"]
|
||||
|
||||
[ext_resource type="Script" path="res://addons/resources_spreadsheet_view/typed_editors/dock_color.gd" id="1"]
|
||||
|
||||
[node name="EditColor" type="VBoxContainer"]
|
||||
anchors_preset = 10
|
||||
offset_bottom = 131.0
|
||||
grow_horizontal = 2
|
||||
mouse_filter = 0
|
||||
script = ExtResource("1")
|
||||
|
||||
[node name="Header" type="HBoxContainer" parent="."]
|
||||
layout_mode = 2
|
||||
offset_right = 1152.0
|
||||
offset_bottom = 26.0
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="Header"]
|
||||
layout_mode = 2
|
||||
offset_right = 506.0
|
||||
offset_bottom = 26.0
|
||||
size_flags_horizontal = 3
|
||||
|
||||
[node name="Label" type="Label" parent="Header/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
offset_right = 85.0
|
||||
offset_bottom = 26.0
|
||||
text = "EDIT: Color"
|
||||
|
||||
[node name="HSeparator" type="HSeparator" parent="Header/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
offset_left = 89.0
|
||||
offset_right = 506.0
|
||||
offset_bottom = 26.0
|
||||
size_flags_horizontal = 3
|
||||
|
||||
[node name="Label" type="Label" parent="Header"]
|
||||
layout_mode = 2
|
||||
offset_left = 510.0
|
||||
offset_right = 642.0
|
||||
offset_bottom = 26.0
|
||||
text = "PROPERTY NAME"
|
||||
|
||||
[node name="HSeparator2" type="HSeparator" parent="Header"]
|
||||
layout_mode = 2
|
||||
offset_left = 646.0
|
||||
offset_right = 1152.0
|
||||
offset_bottom = 26.0
|
||||
size_flags_horizontal = 3
|
||||
|
||||
[node name="EditColor" type="HBoxContainer" parent="."]
|
||||
layout_mode = 2
|
||||
offset_top = 30.0
|
||||
offset_right = 1152.0
|
||||
offset_bottom = 131.0
|
||||
alignment = 1
|
||||
|
||||
[node name="VSeparator7" type="Control" parent="EditColor"]
|
||||
layout_mode = 2
|
||||
anchors_preset = 0
|
||||
offset_right = 200.0
|
||||
offset_bottom = 101.0
|
||||
size_flags_horizontal = 3
|
||||
|
||||
[node name="VSeparator3" type="Control" parent="EditColor"]
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
anchors_preset = 0
|
||||
|
||||
[node name="ButtonRowTemplate" type="Control" parent="EditColor"]
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
anchors_preset = 0
|
||||
|
||||
[node name="Button3" type="Button" parent="EditColor/ButtonRowTemplate"]
|
||||
layout_mode = 0
|
||||
text = "-X"
|
||||
|
||||
[node name="Button2" type="Button" parent="EditColor/ButtonRowTemplate"]
|
||||
layout_mode = 0
|
||||
text = "-5"
|
||||
|
||||
[node name="Label" type="Label" parent="EditColor/ButtonRowTemplate"]
|
||||
layout_mode = 0
|
||||
text = "Red"
|
||||
|
||||
[node name="Button5" type="Button" parent="EditColor/ButtonRowTemplate"]
|
||||
layout_mode = 0
|
||||
text = "+5"
|
||||
|
||||
[node name="Button6" type="Button" parent="EditColor/ButtonRowTemplate"]
|
||||
layout_mode = 0
|
||||
text = "+X"
|
||||
|
||||
[node name="RGBGrid" type="GridContainer" parent="EditColor"]
|
||||
layout_mode = 2
|
||||
offset_left = 204.0
|
||||
offset_right = 388.0
|
||||
offset_bottom = 101.0
|
||||
columns = 5
|
||||
|
||||
[node name="Button3" type="Button" parent="EditColor/RGBGrid"]
|
||||
modulate = Color(1, 0.780392, 0.780392, 1)
|
||||
layout_mode = 2
|
||||
offset_right = 24.0
|
||||
offset_bottom = 31.0
|
||||
text = "-X"
|
||||
|
||||
[node name="Button2" type="Button" parent="EditColor/RGBGrid"]
|
||||
modulate = Color(1, 0.780392, 0.780392, 1)
|
||||
layout_mode = 2
|
||||
offset_left = 28.0
|
||||
offset_right = 60.0
|
||||
offset_bottom = 31.0
|
||||
text = "-10"
|
||||
|
||||
[node name="Label" type="Label" parent="EditColor/RGBGrid"]
|
||||
layout_mode = 2
|
||||
offset_left = 64.0
|
||||
offset_top = 2.0
|
||||
offset_right = 112.0
|
||||
offset_bottom = 28.0
|
||||
text = "Red"
|
||||
horizontal_alignment = 1
|
||||
|
||||
[node name="Button5" type="Button" parent="EditColor/RGBGrid"]
|
||||
modulate = Color(1, 0.780392, 0.780392, 1)
|
||||
layout_mode = 2
|
||||
offset_left = 116.0
|
||||
offset_right = 152.0
|
||||
offset_bottom = 31.0
|
||||
text = "+10"
|
||||
|
||||
[node name="Button6" type="Button" parent="EditColor/RGBGrid"]
|
||||
modulate = Color(1, 0.780392, 0.780392, 1)
|
||||
layout_mode = 2
|
||||
offset_left = 156.0
|
||||
offset_right = 184.0
|
||||
offset_bottom = 31.0
|
||||
text = "+X"
|
||||
|
||||
[node name="Button7" type="Button" parent="EditColor/RGBGrid"]
|
||||
modulate = Color(0.666667, 1, 0.745098, 1)
|
||||
layout_mode = 2
|
||||
offset_top = 35.0
|
||||
offset_right = 24.0
|
||||
offset_bottom = 66.0
|
||||
text = "-X"
|
||||
|
||||
[node name="Button8" type="Button" parent="EditColor/RGBGrid"]
|
||||
modulate = Color(0.666667, 1, 0.745098, 1)
|
||||
layout_mode = 2
|
||||
offset_left = 28.0
|
||||
offset_top = 35.0
|
||||
offset_right = 60.0
|
||||
offset_bottom = 66.0
|
||||
text = "-10"
|
||||
|
||||
[node name="Label2" type="Label" parent="EditColor/RGBGrid"]
|
||||
layout_mode = 2
|
||||
offset_left = 64.0
|
||||
offset_top = 37.0
|
||||
offset_right = 112.0
|
||||
offset_bottom = 63.0
|
||||
text = "Green"
|
||||
horizontal_alignment = 1
|
||||
|
||||
[node name="Button11" type="Button" parent="EditColor/RGBGrid"]
|
||||
modulate = Color(0.666667, 1, 0.745098, 1)
|
||||
layout_mode = 2
|
||||
offset_left = 116.0
|
||||
offset_top = 35.0
|
||||
offset_right = 152.0
|
||||
offset_bottom = 66.0
|
||||
text = "+10"
|
||||
|
||||
[node name="Button12" type="Button" parent="EditColor/RGBGrid"]
|
||||
modulate = Color(0.666667, 1, 0.745098, 1)
|
||||
layout_mode = 2
|
||||
offset_left = 156.0
|
||||
offset_top = 35.0
|
||||
offset_right = 184.0
|
||||
offset_bottom = 66.0
|
||||
text = "+X"
|
||||
|
||||
[node name="Button13" type="Button" parent="EditColor/RGBGrid"]
|
||||
modulate = Color(0.772549, 0.792157, 1, 1)
|
||||
layout_mode = 2
|
||||
offset_top = 70.0
|
||||
offset_right = 24.0
|
||||
offset_bottom = 101.0
|
||||
text = "-X"
|
||||
|
||||
[node name="Button14" type="Button" parent="EditColor/RGBGrid"]
|
||||
modulate = Color(0.772549, 0.792157, 1, 1)
|
||||
layout_mode = 2
|
||||
offset_left = 28.0
|
||||
offset_top = 70.0
|
||||
offset_right = 60.0
|
||||
offset_bottom = 101.0
|
||||
text = "-10"
|
||||
|
||||
[node name="Label3" type="Label" parent="EditColor/RGBGrid"]
|
||||
layout_mode = 2
|
||||
offset_left = 64.0
|
||||
offset_top = 72.0
|
||||
offset_right = 112.0
|
||||
offset_bottom = 98.0
|
||||
text = "Blue"
|
||||
horizontal_alignment = 1
|
||||
|
||||
[node name="Button17" type="Button" parent="EditColor/RGBGrid"]
|
||||
modulate = Color(0.772549, 0.792157, 1, 1)
|
||||
layout_mode = 2
|
||||
offset_left = 116.0
|
||||
offset_top = 70.0
|
||||
offset_right = 152.0
|
||||
offset_bottom = 101.0
|
||||
text = "+10"
|
||||
|
||||
[node name="Button18" type="Button" parent="EditColor/RGBGrid"]
|
||||
modulate = Color(0.772549, 0.792157, 1, 1)
|
||||
layout_mode = 2
|
||||
offset_left = 156.0
|
||||
offset_top = 70.0
|
||||
offset_right = 184.0
|
||||
offset_bottom = 101.0
|
||||
text = "+X"
|
||||
|
||||
[node name="VSeparator" type="VSeparator" parent="EditColor"]
|
||||
layout_mode = 2
|
||||
offset_left = 392.0
|
||||
offset_right = 396.0
|
||||
offset_bottom = 101.0
|
||||
|
||||
[node name="ColorProper" type="VBoxContainer" parent="EditColor"]
|
||||
layout_mode = 2
|
||||
offset_left = 400.0
|
||||
offset_right = 511.0
|
||||
offset_bottom = 101.0
|
||||
|
||||
[node name="ColorRect" type="ColorRect" parent="EditColor/ColorProper"]
|
||||
layout_mode = 2
|
||||
offset_right = 111.0
|
||||
offset_bottom = 66.0
|
||||
size_flags_vertical = 3
|
||||
|
||||
[node name="Button" type="Button" parent="EditColor/ColorProper"]
|
||||
layout_mode = 2
|
||||
offset_top = 70.0
|
||||
offset_right = 111.0
|
||||
offset_bottom = 101.0
|
||||
text = "Choose Color"
|
||||
|
||||
[node name="VSeparator2" type="VSeparator" parent="EditColor"]
|
||||
layout_mode = 2
|
||||
offset_left = 515.0
|
||||
offset_right = 519.0
|
||||
offset_bottom = 101.0
|
||||
|
||||
[node name="HSVGrid" type="GridContainer" parent="EditColor"]
|
||||
layout_mode = 2
|
||||
offset_left = 523.0
|
||||
offset_right = 703.0
|
||||
offset_bottom = 101.0
|
||||
columns = 5
|
||||
|
||||
[node name="Button3" type="Button" parent="EditColor/HSVGrid"]
|
||||
modulate = Color(1, 0.913725, 0.776471, 1)
|
||||
layout_mode = 2
|
||||
offset_right = 24.0
|
||||
offset_bottom = 31.0
|
||||
text = "-X"
|
||||
|
||||
[node name="Button2" type="Button" parent="EditColor/HSVGrid"]
|
||||
modulate = Color(0.898039, 1, 0.698039, 1)
|
||||
layout_mode = 2
|
||||
offset_left = 28.0
|
||||
offset_right = 60.0
|
||||
offset_bottom = 31.0
|
||||
text = "-10"
|
||||
|
||||
[node name="Label" type="Label" parent="EditColor/HSVGrid"]
|
||||
layout_mode = 2
|
||||
offset_left = 64.0
|
||||
offset_top = 2.0
|
||||
offset_right = 108.0
|
||||
offset_bottom = 28.0
|
||||
text = "Hue"
|
||||
horizontal_alignment = 1
|
||||
|
||||
[node name="Button5" type="Button" parent="EditColor/HSVGrid"]
|
||||
modulate = Color(0.717647, 1, 0.980392, 1)
|
||||
layout_mode = 2
|
||||
offset_left = 112.0
|
||||
offset_right = 148.0
|
||||
offset_bottom = 31.0
|
||||
text = "+10"
|
||||
|
||||
[node name="Button6" type="Button" parent="EditColor/HSVGrid"]
|
||||
modulate = Color(0.74902, 0.729412, 1, 1)
|
||||
layout_mode = 2
|
||||
offset_left = 152.0
|
||||
offset_right = 180.0
|
||||
offset_bottom = 31.0
|
||||
text = "+X"
|
||||
|
||||
[node name="Button7" type="Button" parent="EditColor/HSVGrid"]
|
||||
layout_mode = 2
|
||||
offset_top = 35.0
|
||||
offset_right = 24.0
|
||||
offset_bottom = 66.0
|
||||
text = "-X"
|
||||
|
||||
[node name="Button8" type="Button" parent="EditColor/HSVGrid"]
|
||||
layout_mode = 2
|
||||
offset_left = 28.0
|
||||
offset_top = 35.0
|
||||
offset_right = 60.0
|
||||
offset_bottom = 66.0
|
||||
text = "-5"
|
||||
|
||||
[node name="Label2" type="Label" parent="EditColor/HSVGrid"]
|
||||
layout_mode = 2
|
||||
offset_left = 64.0
|
||||
offset_top = 37.0
|
||||
offset_right = 108.0
|
||||
offset_bottom = 63.0
|
||||
text = "Sat"
|
||||
horizontal_alignment = 1
|
||||
|
||||
[node name="Button11" type="Button" parent="EditColor/HSVGrid"]
|
||||
layout_mode = 2
|
||||
offset_left = 112.0
|
||||
offset_top = 35.0
|
||||
offset_right = 148.0
|
||||
offset_bottom = 66.0
|
||||
text = "+5"
|
||||
|
||||
[node name="Button12" type="Button" parent="EditColor/HSVGrid"]
|
||||
layout_mode = 2
|
||||
offset_left = 152.0
|
||||
offset_top = 35.0
|
||||
offset_right = 180.0
|
||||
offset_bottom = 66.0
|
||||
text = "+X"
|
||||
|
||||
[node name="Button13" type="Button" parent="EditColor/HSVGrid"]
|
||||
layout_mode = 2
|
||||
offset_top = 70.0
|
||||
offset_right = 24.0
|
||||
offset_bottom = 101.0
|
||||
text = "-X"
|
||||
|
||||
[node name="Button14" type="Button" parent="EditColor/HSVGrid"]
|
||||
layout_mode = 2
|
||||
offset_left = 28.0
|
||||
offset_top = 70.0
|
||||
offset_right = 60.0
|
||||
offset_bottom = 101.0
|
||||
text = "-5"
|
||||
|
||||
[node name="Label3" type="Label" parent="EditColor/HSVGrid"]
|
||||
layout_mode = 2
|
||||
offset_left = 64.0
|
||||
offset_top = 72.0
|
||||
offset_right = 108.0
|
||||
offset_bottom = 98.0
|
||||
text = "Value"
|
||||
horizontal_alignment = 1
|
||||
|
||||
[node name="Button17" type="Button" parent="EditColor/HSVGrid"]
|
||||
layout_mode = 2
|
||||
offset_left = 112.0
|
||||
offset_top = 70.0
|
||||
offset_right = 148.0
|
||||
offset_bottom = 101.0
|
||||
text = "+5"
|
||||
|
||||
[node name="Button18" type="Button" parent="EditColor/HSVGrid"]
|
||||
layout_mode = 2
|
||||
offset_left = 152.0
|
||||
offset_top = 70.0
|
||||
offset_right = 180.0
|
||||
offset_bottom = 101.0
|
||||
text = "+X"
|
||||
|
||||
[node name="VSeparator4" type="VSeparator" parent="EditColor"]
|
||||
layout_mode = 2
|
||||
offset_left = 707.0
|
||||
offset_right = 711.0
|
||||
offset_bottom = 101.0
|
||||
|
||||
[node name="CustomX" type="VBoxContainer" parent="EditColor"]
|
||||
layout_mode = 2
|
||||
offset_left = 715.0
|
||||
offset_right = 947.0
|
||||
offset_bottom = 101.0
|
||||
|
||||
[node name="Label" type="Label" parent="EditColor/CustomX"]
|
||||
layout_mode = 2
|
||||
offset_top = 20.0
|
||||
offset_right = 232.0
|
||||
offset_bottom = 46.0
|
||||
size_flags_vertical = 6
|
||||
text = "Custom Value (for +X buttons)"
|
||||
|
||||
[node name="LineEdit" type="LineEdit" parent="EditColor/CustomX"]
|
||||
layout_mode = 2
|
||||
offset_top = 70.0
|
||||
offset_right = 232.0
|
||||
offset_bottom = 101.0
|
||||
text = "20"
|
||||
|
||||
[node name="VSeparator6" type="Control" parent="EditColor"]
|
||||
layout_mode = 2
|
||||
anchors_preset = 0
|
||||
offset_left = 951.0
|
||||
offset_right = 1152.0
|
||||
offset_bottom = 101.0
|
||||
size_flags_horizontal = 3
|
||||
|
||||
[node name="Panel" type="PanelContainer" parent="EditColor/VSeparator6"]
|
||||
visible = false
|
||||
layout_mode = 1
|
||||
anchors_preset = 2
|
||||
grow_vertical = 0
|
||||
|
||||
[node name="Panel2" type="Panel" parent="EditColor/VSeparator6/Panel"]
|
||||
self_modulate = Color(1.5, 1.5, 1.5, 1)
|
||||
layout_mode = 2
|
||||
|
||||
[node name="MarginContainer" type="MarginContainer" parent="EditColor/VSeparator6/Panel"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="ColorPicker" type="ColorPicker" parent="EditColor/VSeparator6/Panel/MarginContainer"]
|
||||
layout_mode = 2
|
||||
offset_right = 290.0
|
||||
offset_bottom = 542.0
|
||||
|
||||
[node name="Button" type="Button" parent="EditColor/VSeparator6/Panel/MarginContainer/ColorPicker"]
|
||||
layout_mode = 2
|
||||
text = "OK"
|
||||
|
||||
[connection signal="pressed" from="EditColor/ColorProper/Button" to="." method="_on_Button_pressed"]
|
||||
[connection signal="gui_input" from="EditColor/VSeparator6/Panel/MarginContainer/ColorPicker" to="." method="_on_ColorPicker_gui_input"]
|
||||
[connection signal="pressed" from="EditColor/VSeparator6/Panel/MarginContainer/ColorPicker/Button" to="." method="_on_Button_pressed"]
|
@ -1,10 +1,10 @@
|
||||
tool
|
||||
@tool
|
||||
extends SheetsDockEditor
|
||||
|
||||
onready var _value_label := $"HBoxContainer/HBoxContainer/NumberPanel/Label"
|
||||
onready var _button_grid := $"HBoxContainer/HBoxContainer/GridContainer"
|
||||
onready var _sequence_gen_inputs := $"HBoxContainer/CustomX2/HBoxContainer"
|
||||
onready var _custom_value_edit := $"HBoxContainer/CustomX/LineEdit"
|
||||
@onready var _value_label := $"HBoxContainer/HBoxContainer/NumberPanel/Label"
|
||||
@onready var _button_grid := $"HBoxContainer/HBoxContainer/GridContainer"
|
||||
@onready var _sequence_gen_inputs := $"HBoxContainer/CustomX2/HBoxContainer"
|
||||
@onready var _custom_value_edit := $"HBoxContainer/CustomX/LineEdit"
|
||||
|
||||
var _stored_value = 0
|
||||
var _stored_value_is_int := false
|
||||
@ -13,29 +13,30 @@ var _mouse_down := false
|
||||
|
||||
|
||||
func _ready():
|
||||
_button_grid.get_child(0).connect("pressed", self, "_increment_values", [0.1])
|
||||
_button_grid.get_child(1).connect("pressed", self, "_increment_values", [1])
|
||||
_button_grid.get_child(2).connect("pressed", self, "_increment_values", [10])
|
||||
_button_grid.get_child(3).connect("pressed", self, "_increment_values", [100])
|
||||
_button_grid.get_child(4).connect("pressed", self, "_increment_values_custom", [true, false])
|
||||
_button_grid.get_child(5).connect("pressed", self, "_increment_values_custom", [true, true])
|
||||
super._ready()
|
||||
_button_grid.get_child(0).pressed.connect(_increment_values.bind(0.1))
|
||||
_button_grid.get_child(1).pressed.connect(_increment_values.bind(1))
|
||||
_button_grid.get_child(2).pressed.connect(_increment_values.bind(10))
|
||||
_button_grid.get_child(3).pressed.connect(_increment_values.bind(100))
|
||||
_button_grid.get_child(4).pressed.connect(_increment_values_custom.bind(true, false))
|
||||
_button_grid.get_child(5).pressed.connect(_increment_values_custom.bind(true, true))
|
||||
|
||||
_button_grid.get_child(6).connect("pressed", self, "_increment_values", [-0.1])
|
||||
_button_grid.get_child(7).connect("pressed", self, "_increment_values", [-1])
|
||||
_button_grid.get_child(8).connect("pressed", self, "_increment_values", [-10])
|
||||
_button_grid.get_child(9).connect("pressed", self, "_increment_values", [-100])
|
||||
_button_grid.get_child(10).connect("pressed", self, "_increment_values_custom",[false, false])
|
||||
_button_grid.get_child(11).connect("pressed", self, "_increment_values_custom",[false, true])
|
||||
_button_grid.get_child(6).pressed.connect(_increment_values.bind(-0.1))
|
||||
_button_grid.get_child(7).pressed.connect(_increment_values.bind(-1))
|
||||
_button_grid.get_child(8).pressed.connect(_increment_values.bind(-10))
|
||||
_button_grid.get_child(9).pressed.connect(_increment_values.bind(-100))
|
||||
_button_grid.get_child(10).pressed.connect(_increment_values_custom.bind(false, false))
|
||||
_button_grid.get_child(11).pressed.connect(_increment_values_custom.bind(false, true))
|
||||
|
||||
|
||||
func try_edit_value(value, type, property_hint) -> bool:
|
||||
if type != TYPE_REAL and type != TYPE_INT:
|
||||
if type != TYPE_FLOAT and type != TYPE_INT:
|
||||
return false
|
||||
|
||||
_stored_value = value
|
||||
_value_label.text = str(value)
|
||||
|
||||
_stored_value_is_int = type != TYPE_REAL
|
||||
_stored_value_is_int = type != TYPE_FLOAT
|
||||
_button_grid.columns = 5 if _stored_value_is_int else 6
|
||||
_button_grid.get_child(0).visible = !_stored_value_is_int
|
||||
_button_grid.get_child(6).visible = !_stored_value_is_int
|
||||
@ -78,7 +79,7 @@ func _increment_values_custom(positive : bool, multiplier : bool):
|
||||
|
||||
|
||||
func _on_NumberPanel_gui_input(event):
|
||||
if event is InputEventMouseButton and event.button_index == BUTTON_LEFT:
|
||||
if event is InputEventMouseButton and event.button_index == MOUSE_BUTTON_LEFT:
|
||||
if event.pressed:
|
||||
Input.mouse_mode = Input.MOUSE_MODE_CAPTURED
|
||||
_mouse_drag_increment = 0.0
|
||||
@ -87,7 +88,7 @@ func _on_NumberPanel_gui_input(event):
|
||||
else:
|
||||
Input.mouse_mode = Input.MOUSE_MODE_VISIBLE
|
||||
if _mouse_down:
|
||||
Input.warp_mouse_position(_value_label.rect_global_position + _value_label.rect_size * 0.5)
|
||||
Input.warp_mouse(_value_label.global_position + _value_label.size * 0.5)
|
||||
|
||||
_increment_values(_mouse_drag_increment)
|
||||
_mouse_down = false
|
@ -1,9 +1,8 @@
|
||||
[gd_scene load_steps=2 format=2]
|
||||
|
||||
[ext_resource path="res://addons/resources_speadsheet_view/typed_editors/dock_number.gd" type="Script" id=1]
|
||||
[ext_resource path="res://addons/resources_spreadsheet_view/typed_editors/dock_number.gd" type="Script" id=1]
|
||||
|
||||
[node name="EditNumber" type="VBoxContainer"]
|
||||
anchor_right = 1.0
|
||||
margin_bottom = 86.0
|
||||
rect_pivot_offset = Vector2( -460, -28 )
|
||||
mouse_filter = 0
|
||||
@ -66,7 +65,7 @@ text = "Fill with Sequence"
|
||||
margin_left = 120.0
|
||||
margin_right = 134.0
|
||||
margin_bottom = 14.0
|
||||
hint_tooltip = "Fill selected cells with a number sequence. Order is the same as the cells were selected.
|
||||
tooltip_text = "Fill selected cells with a number sequence. Order is the same as the cells were selected.
|
||||
- You must specify Start.
|
||||
- If all values specified, selected cells will have a repeating sequence
|
||||
of numbers from Start to End, with increment of Step, not including End.
|
||||
@ -87,21 +86,21 @@ margin_bottom = 42.0
|
||||
[node name="LineEdit" type="LineEdit" parent="HBoxContainer/CustomX2/HBoxContainer"]
|
||||
margin_right = 58.0
|
||||
margin_bottom = 24.0
|
||||
hint_tooltip = "Start (must not be blank)"
|
||||
tooltip_text = "Start (must not be blank)"
|
||||
placeholder_text = "Start *"
|
||||
|
||||
[node name="LineEdit2" type="LineEdit" parent="HBoxContainer/CustomX2/HBoxContainer"]
|
||||
margin_left = 62.0
|
||||
margin_right = 120.0
|
||||
margin_bottom = 24.0
|
||||
hint_tooltip = "End"
|
||||
tooltip_text = "End"
|
||||
placeholder_text = "End"
|
||||
|
||||
[node name="LineEdit3" type="LineEdit" parent="HBoxContainer/CustomX2/HBoxContainer"]
|
||||
margin_left = 124.0
|
||||
margin_right = 182.0
|
||||
margin_bottom = 24.0
|
||||
hint_tooltip = "End"
|
||||
tooltip_text = "End"
|
||||
placeholder_text = "Step"
|
||||
|
||||
[node name="HBoxContainer2" type="HBoxContainer" parent="HBoxContainer/CustomX2"]
|
@ -1,7 +1,7 @@
|
||||
tool
|
||||
@tool
|
||||
extends SheetsDockEditor
|
||||
|
||||
var _stored_value : Texture
|
||||
var _stored_value : Texture2D
|
||||
|
||||
|
||||
func try_edit_value(value, type, property_hint) -> bool:
|
||||
@ -14,8 +14,8 @@ func try_edit_value(value, type, property_hint) -> bool:
|
||||
|
||||
|
||||
func _on_Button_pressed():
|
||||
var h_count = int($"CenterContainer/HBoxContainer/VBoxContainer/HBoxContainer/LineEdit".text)
|
||||
var v_count = int($"CenterContainer/HBoxContainer/VBoxContainer/HBoxContainer/LineEdit2".text)
|
||||
var h_count = $"CenterContainer/HBoxContainer/VBoxContainer/HBoxContainer/LineEdit".text.to_int()
|
||||
var v_count = $"CenterContainer/HBoxContainer/VBoxContainer/HBoxContainer/LineEdit2".text.to_int()
|
||||
# No, Scene Unique Names can not be used in-editor (last time i checked)
|
||||
|
||||
var folder_name := _stored_value.resource_path.get_basename()
|
||||
@ -32,7 +32,7 @@ func _on_Button_pressed():
|
||||
tile.atlas = _stored_value
|
||||
tile_array.append(tile)
|
||||
tile.take_over_path(folder_name + "/" + folder_name.get_file() + "_" + str(j * v_count + i + 1) + ".tres")
|
||||
ResourceSaver.save(tile.resource_path, tile)
|
||||
ResourceSaver.save(tile)
|
||||
|
||||
tile_array.resize(sheet.edited_cells.size())
|
||||
sheet.set_edited_cells_values(tile_array)
|
@ -0,0 +1,132 @@
|
||||
[gd_scene load_steps=3 format=3 uid="uid://rww3gpl052bn"]
|
||||
|
||||
[ext_resource type="Script" path="res://addons/resources_spreadsheet_view/typed_editors/dock_texture.gd" id="1"]
|
||||
[ext_resource type="Texture2D" uid="uid://c08qavfwqr3k7" path="res://icon.png" id="2"]
|
||||
|
||||
[node name="EditTexture" type="VBoxContainer"]
|
||||
anchors_preset = -1
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 0.0694444
|
||||
offset_bottom = 126.0
|
||||
grow_horizontal = 2
|
||||
mouse_filter = 0
|
||||
script = ExtResource("1")
|
||||
metadata/_edit_use_anchors_ = true
|
||||
|
||||
[node name="Header" type="HBoxContainer" parent="."]
|
||||
layout_mode = 2
|
||||
offset_right = 1152.0
|
||||
offset_bottom = 26.0
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="Header"]
|
||||
layout_mode = 2
|
||||
offset_right = 506.0
|
||||
offset_bottom = 26.0
|
||||
size_flags_horizontal = 3
|
||||
|
||||
[node name="Label" type="Label" parent="Header/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
offset_right = 103.0
|
||||
offset_bottom = 26.0
|
||||
text = "EDIT: Texture"
|
||||
|
||||
[node name="HSeparator" type="HSeparator" parent="Header/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
offset_left = 107.0
|
||||
offset_right = 506.0
|
||||
offset_bottom = 26.0
|
||||
size_flags_horizontal = 3
|
||||
|
||||
[node name="Label" type="Label" parent="Header"]
|
||||
layout_mode = 2
|
||||
offset_left = 510.0
|
||||
offset_right = 642.0
|
||||
offset_bottom = 26.0
|
||||
text = "PROPERTY NAME"
|
||||
|
||||
[node name="HSeparator2" type="HSeparator" parent="Header"]
|
||||
layout_mode = 2
|
||||
offset_left = 646.0
|
||||
offset_right = 1152.0
|
||||
offset_bottom = 26.0
|
||||
size_flags_horizontal = 3
|
||||
|
||||
[node name="CenterContainer" type="CenterContainer" parent="."]
|
||||
layout_mode = 2
|
||||
offset_top = 30.0
|
||||
offset_right = 1152.0
|
||||
offset_bottom = 126.0
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="CenterContainer"]
|
||||
layout_mode = 2
|
||||
offset_left = 394.0
|
||||
offset_right = 758.0
|
||||
offset_bottom = 96.0
|
||||
alignment = 1
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="CenterContainer/HBoxContainer"]
|
||||
custom_minimum_size = Vector2i(96, 96)
|
||||
layout_mode = 2
|
||||
offset_right = 96.0
|
||||
offset_bottom = 96.0
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 3
|
||||
texture = ExtResource("2")
|
||||
ignore_texture_size = true
|
||||
stretch_mode = 5
|
||||
|
||||
[node name="VSeparator" type="VSeparator" parent="CenterContainer/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
offset_left = 100.0
|
||||
offset_right = 104.0
|
||||
offset_bottom = 96.0
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="CenterContainer/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
offset_left = 108.0
|
||||
offset_right = 364.0
|
||||
offset_bottom = 96.0
|
||||
size_flags_horizontal = 3
|
||||
auto_translate = false
|
||||
|
||||
[node name="Label" type="Label" parent="CenterContainer/HBoxContainer/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
offset_right = 256.0
|
||||
offset_bottom = 26.0
|
||||
size_flags_vertical = 3
|
||||
text = "Atlas Chopper"
|
||||
horizontal_alignment = 1
|
||||
vertical_alignment = 1
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="CenterContainer/HBoxContainer/VBoxContainer"]
|
||||
layout_mode = 2
|
||||
offset_top = 30.0
|
||||
offset_right = 256.0
|
||||
offset_bottom = 61.0
|
||||
size_flags_vertical = 4
|
||||
|
||||
[node name="LineEdit" type="LineEdit" parent="CenterContainer/HBoxContainer/VBoxContainer/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
offset_right = 126.0
|
||||
offset_bottom = 31.0
|
||||
size_flags_horizontal = 3
|
||||
placeholder_text = "H Count"
|
||||
|
||||
[node name="LineEdit2" type="LineEdit" parent="CenterContainer/HBoxContainer/VBoxContainer/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
offset_left = 130.0
|
||||
offset_right = 256.0
|
||||
offset_bottom = 31.0
|
||||
size_flags_horizontal = 3
|
||||
placeholder_text = "V Count"
|
||||
|
||||
[node name="Button" type="Button" parent="CenterContainer/HBoxContainer/VBoxContainer"]
|
||||
custom_minimum_size = Vector2i(256, 0)
|
||||
layout_mode = 2
|
||||
offset_top = 65.0
|
||||
offset_right = 256.0
|
||||
offset_bottom = 96.0
|
||||
size_flags_vertical = 4
|
||||
text = "Chop chop chop!!!"
|
||||
|
||||
[connection signal="pressed" from="CenterContainer/HBoxContainer/VBoxContainer/Button" to="." method="_on_Button_pressed"]
|
@ -1,8 +1,9 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/all_icons.png-28909f8bd099d79f5d095eb93a9167e6.stex"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://b7e3wp7i33ye5"
|
||||
path="res://.godot/imported/all_icons.png-28909f8bd099d79f5d095eb93a9167e6.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
@ -10,26 +11,24 @@ metadata={
|
||||
[deps]
|
||||
|
||||
source_file="res://example/Random Upgrades/icons/all_icons.png"
|
||||
dest_files=[ "res://.import/all_icons.png-28909f8bd099d79f5d095eb93a9167e6.stex" ]
|
||||
dest_files=["res://.godot/imported/all_icons.png-28909f8bd099d79f5d095eb93a9167e6.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_mode=0
|
||||
compress/hdr_compression=1
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
flags/repeat=0
|
||||
flags/filter=true
|
||||
flags/mipmaps=false
|
||||
flags/anisotropic=false
|
||||
flags/srgb=2
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/HDR_as_SRGB=false
|
||||
process/invert_color=false
|
||||
process/normal_map_invert_y=false
|
||||
stream=false
|
||||
size_limit=0
|
||||
detect_3d=true
|
||||
svg/scale=1.0
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
|
@ -1,8 +1,7 @@
|
||||
[gd_resource type="AtlasTexture" load_steps=2 format=2]
|
||||
[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://c3bx6kf7frbwk"]
|
||||
|
||||
[ext_resource path="res://example/Random Upgrades/icons/all_icons.png" type="Texture" id=1]
|
||||
[ext_resource type="Texture2D" uid="uid://b7e3wp7i33ye5" path="res://example/Random Upgrades/icons/all_icons.png" id="1"]
|
||||
|
||||
[resource]
|
||||
flags = 4
|
||||
atlas = ExtResource( 1 )
|
||||
region = Rect2( 0, 0, 64, 64 )
|
||||
atlas = ExtResource("1")
|
||||
region = Rect2(0, 0, 64, 64)
|
||||
|
@ -1,8 +1,7 @@
|
||||
[gd_resource type="AtlasTexture" load_steps=2 format=2]
|
||||
[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://cak6lra5ej68c"]
|
||||
|
||||
[ext_resource path="res://example/Random Upgrades/icons/all_icons.png" type="Texture" id=1]
|
||||
[ext_resource type="Texture2D" uid="uid://b7e3wp7i33ye5" path="res://example/Random Upgrades/icons/all_icons.png" id="1_6pmrx"]
|
||||
|
||||
[resource]
|
||||
flags = 4
|
||||
atlas = ExtResource( 1 )
|
||||
region = Rect2( 64, 128, 64, 64 )
|
||||
atlas = ExtResource("1_6pmrx")
|
||||
region = Rect2(64, 128, 64, 64)
|
||||
|
@ -1,8 +1,7 @@
|
||||
[gd_resource type="AtlasTexture" load_steps=2 format=2]
|
||||
[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://dkc8d2p0xbl1n"]
|
||||
|
||||
[ext_resource path="res://example/Random Upgrades/icons/all_icons.png" type="Texture" id=1]
|
||||
[ext_resource type="Texture2D" uid="uid://b7e3wp7i33ye5" path="res://example/Random Upgrades/icons/all_icons.png" id="1_lk0lg"]
|
||||
|
||||
[resource]
|
||||
flags = 4
|
||||
atlas = ExtResource( 1 )
|
||||
region = Rect2( 128, 128, 64, 64 )
|
||||
atlas = ExtResource("1_lk0lg")
|
||||
region = Rect2(128, 128, 64, 64)
|
||||
|
@ -1,8 +1,7 @@
|
||||
[gd_resource type="AtlasTexture" load_steps=2 format=2]
|
||||
[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://ciiykhulvckp7"]
|
||||
|
||||
[ext_resource path="res://example/Random Upgrades/icons/all_icons.png" type="Texture" id=1]
|
||||
[ext_resource type="Texture2D" uid="uid://b7e3wp7i33ye5" path="res://example/Random Upgrades/icons/all_icons.png" id="1_fd56b"]
|
||||
|
||||
[resource]
|
||||
flags = 4
|
||||
atlas = ExtResource( 1 )
|
||||
region = Rect2( 192, 128, 64, 64 )
|
||||
atlas = ExtResource("1_fd56b")
|
||||
region = Rect2(192, 128, 64, 64)
|
||||
|
@ -1,8 +1,7 @@
|
||||
[gd_resource type="AtlasTexture" load_steps=2 format=2]
|
||||
[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://dki1d3uksoyfj"]
|
||||
|
||||
[ext_resource path="res://example/Random Upgrades/icons/all_icons.png" type="Texture" id=1]
|
||||
[ext_resource type="Texture2D" uid="uid://b7e3wp7i33ye5" path="res://example/Random Upgrades/icons/all_icons.png" id="1_ds6ve"]
|
||||
|
||||
[resource]
|
||||
flags = 4
|
||||
atlas = ExtResource( 1 )
|
||||
region = Rect2( 0, 192, 64, 64 )
|
||||
atlas = ExtResource("1_ds6ve")
|
||||
region = Rect2(0, 192, 64, 64)
|
||||
|
@ -1,8 +1,7 @@
|
||||
[gd_resource type="AtlasTexture" load_steps=2 format=2]
|
||||
[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://cpenn4qsfhx28"]
|
||||
|
||||
[ext_resource path="res://example/Random Upgrades/icons/all_icons.png" type="Texture" id=1]
|
||||
[ext_resource type="Texture2D" uid="uid://b7e3wp7i33ye5" path="res://example/Random Upgrades/icons/all_icons.png" id="1_icesd"]
|
||||
|
||||
[resource]
|
||||
flags = 4
|
||||
atlas = ExtResource( 1 )
|
||||
region = Rect2( 64, 192, 64, 64 )
|
||||
atlas = ExtResource("1_icesd")
|
||||
region = Rect2(64, 192, 64, 64)
|
||||
|
@ -1,8 +1,7 @@
|
||||
[gd_resource type="AtlasTexture" load_steps=2 format=2]
|
||||
[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://cm6cb8uou75x0"]
|
||||
|
||||
[ext_resource path="res://example/Random Upgrades/icons/all_icons.png" type="Texture" id=1]
|
||||
[ext_resource type="Texture2D" uid="uid://b7e3wp7i33ye5" path="res://example/Random Upgrades/icons/all_icons.png" id="1_mlqxi"]
|
||||
|
||||
[resource]
|
||||
flags = 4
|
||||
atlas = ExtResource( 1 )
|
||||
region = Rect2( 128, 192, 64, 64 )
|
||||
atlas = ExtResource("1_mlqxi")
|
||||
region = Rect2(128, 192, 64, 64)
|
||||
|
@ -1,8 +1,7 @@
|
||||
[gd_resource type="AtlasTexture" load_steps=2 format=2]
|
||||
[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://0c7ngrkwn42u"]
|
||||
|
||||
[ext_resource path="res://example/Random Upgrades/icons/all_icons.png" type="Texture" id=1]
|
||||
[ext_resource type="Texture2D" uid="uid://b7e3wp7i33ye5" path="res://example/Random Upgrades/icons/all_icons.png" id="1_jk82p"]
|
||||
|
||||
[resource]
|
||||
flags = 4
|
||||
atlas = ExtResource( 1 )
|
||||
region = Rect2( 192, 192, 64, 64 )
|
||||
atlas = ExtResource("1_jk82p")
|
||||
region = Rect2(192, 192, 64, 64)
|
||||
|
@ -1,8 +1,7 @@
|
||||
[gd_resource type="AtlasTexture" load_steps=2 format=2]
|
||||
[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://dfpwu4ra3fxgx"]
|
||||
|
||||
[ext_resource path="res://example/Random Upgrades/icons/all_icons.png" type="Texture" id=1]
|
||||
[ext_resource type="Texture2D" uid="uid://b7e3wp7i33ye5" path="res://example/Random Upgrades/icons/all_icons.png" id="1"]
|
||||
|
||||
[resource]
|
||||
flags = 4
|
||||
atlas = ExtResource( 1 )
|
||||
region = Rect2( 64, 0, 64, 64 )
|
||||
atlas = ExtResource("1")
|
||||
region = Rect2(64, 0, 64, 64)
|
||||
|
@ -1,8 +1,7 @@
|
||||
[gd_resource type="AtlasTexture" load_steps=2 format=2]
|
||||
[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://d38giyxvkhl6g"]
|
||||
|
||||
[ext_resource path="res://example/Random Upgrades/icons/all_icons.png" type="Texture" id=1]
|
||||
[ext_resource type="Texture2D" uid="uid://b7e3wp7i33ye5" path="res://example/Random Upgrades/icons/all_icons.png" id="1"]
|
||||
|
||||
[resource]
|
||||
flags = 4
|
||||
atlas = ExtResource( 1 )
|
||||
region = Rect2( 128, 0, 64, 64 )
|
||||
atlas = ExtResource("1")
|
||||
region = Rect2(128, 0, 64, 64)
|
||||
|
@ -1,8 +1,7 @@
|
||||
[gd_resource type="AtlasTexture" load_steps=2 format=2]
|
||||
[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://cluvoehgeqmcu"]
|
||||
|
||||
[ext_resource path="res://example/Random Upgrades/icons/all_icons.png" type="Texture" id=1]
|
||||
[ext_resource type="Texture2D" uid="uid://b7e3wp7i33ye5" path="res://example/Random Upgrades/icons/all_icons.png" id="1"]
|
||||
|
||||
[resource]
|
||||
flags = 4
|
||||
atlas = ExtResource( 1 )
|
||||
region = Rect2( 192, 0, 64, 64 )
|
||||
atlas = ExtResource("1")
|
||||
region = Rect2(192, 0, 64, 64)
|
||||
|
@ -1,8 +1,7 @@
|
||||
[gd_resource type="AtlasTexture" load_steps=2 format=2]
|
||||
[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://djjpa8lluue1g"]
|
||||
|
||||
[ext_resource path="res://example/Random Upgrades/icons/all_icons.png" type="Texture" id=1]
|
||||
[ext_resource type="Texture2D" uid="uid://b7e3wp7i33ye5" path="res://example/Random Upgrades/icons/all_icons.png" id="1"]
|
||||
|
||||
[resource]
|
||||
flags = 4
|
||||
atlas = ExtResource( 1 )
|
||||
region = Rect2( 0, 64, 64, 64 )
|
||||
atlas = ExtResource("1")
|
||||
region = Rect2(0, 64, 64, 64)
|
||||
|
@ -1,8 +1,7 @@
|
||||
[gd_resource type="AtlasTexture" load_steps=2 format=2]
|
||||
[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://butx3l1jdcgcc"]
|
||||
|
||||
[ext_resource path="res://example/Random Upgrades/icons/all_icons.png" type="Texture" id=1]
|
||||
[ext_resource type="Texture2D" uid="uid://b7e3wp7i33ye5" path="res://example/Random Upgrades/icons/all_icons.png" id="1_em1jn"]
|
||||
|
||||
[resource]
|
||||
flags = 4
|
||||
atlas = ExtResource( 1 )
|
||||
region = Rect2( 64, 64, 64, 64 )
|
||||
atlas = ExtResource("1_em1jn")
|
||||
region = Rect2(64, 64, 64, 64)
|
||||
|
@ -1,8 +1,7 @@
|
||||
[gd_resource type="AtlasTexture" load_steps=2 format=2]
|
||||
[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://dfhgifwrrigrw"]
|
||||
|
||||
[ext_resource path="res://example/Random Upgrades/icons/all_icons.png" type="Texture" id=1]
|
||||
[ext_resource type="Texture2D" uid="uid://b7e3wp7i33ye5" path="res://example/Random Upgrades/icons/all_icons.png" id="1_bpiay"]
|
||||
|
||||
[resource]
|
||||
flags = 4
|
||||
atlas = ExtResource( 1 )
|
||||
region = Rect2( 128, 64, 64, 64 )
|
||||
atlas = ExtResource("1_bpiay")
|
||||
region = Rect2(128, 64, 64, 64)
|
||||
|
@ -1,8 +1,7 @@
|
||||
[gd_resource type="AtlasTexture" load_steps=2 format=2]
|
||||
[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://dacww8ptt8uyo"]
|
||||
|
||||
[ext_resource path="res://example/Random Upgrades/icons/all_icons.png" type="Texture" id=1]
|
||||
[ext_resource type="Texture2D" uid="uid://b7e3wp7i33ye5" path="res://example/Random Upgrades/icons/all_icons.png" id="1_mbxiu"]
|
||||
|
||||
[resource]
|
||||
flags = 4
|
||||
atlas = ExtResource( 1 )
|
||||
region = Rect2( 192, 64, 64, 64 )
|
||||
atlas = ExtResource("1_mbxiu")
|
||||
region = Rect2(192, 64, 64, 64)
|
||||
|
@ -1,8 +1,7 @@
|
||||
[gd_resource type="AtlasTexture" load_steps=2 format=2]
|
||||
[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://dbbgxcs806sy8"]
|
||||
|
||||
[ext_resource path="res://example/Random Upgrades/icons/all_icons.png" type="Texture" id=1]
|
||||
[ext_resource type="Texture2D" uid="uid://b7e3wp7i33ye5" path="res://example/Random Upgrades/icons/all_icons.png" id="1_bw3gq"]
|
||||
|
||||
[resource]
|
||||
flags = 4
|
||||
atlas = ExtResource( 1 )
|
||||
region = Rect2( 0, 128, 64, 64 )
|
||||
atlas = ExtResource("1_bw3gq")
|
||||
region = Rect2(0, 128, 64, 64)
|
||||
|
@ -1,34 +1,31 @@
|
||||
[gd_scene format=2]
|
||||
[gd_scene format=3 uid="uid://b4cix5ebtpdbf"]
|
||||
|
||||
[node name="Node2D" type="Node2D"]
|
||||
|
||||
[node name="ColorRect" type="ColorRect" parent="."]
|
||||
margin_left = 51.0
|
||||
margin_top = 54.0
|
||||
margin_right = 374.0
|
||||
margin_bottom = 371.0
|
||||
rect_rotation = -15.0
|
||||
color = Color( 0, 1, 0.0156863, 1 )
|
||||
offset_left = 363.0
|
||||
offset_top = 83.0
|
||||
offset_right = 718.0
|
||||
offset_bottom = 632.0
|
||||
color = Color(0, 1, 0.0156863, 1)
|
||||
|
||||
[node name="ColorRect2" type="ColorRect" parent="."]
|
||||
margin_left = 484.0
|
||||
margin_top = 66.0
|
||||
margin_right = 807.0
|
||||
margin_bottom = 383.0
|
||||
rect_rotation = 15.0
|
||||
color = Color( 0, 0.905882, 1, 1 )
|
||||
offset_left = 833.0
|
||||
offset_top = 304.0
|
||||
offset_right = 1095.0
|
||||
offset_bottom = 653.0
|
||||
color = Color(0, 0.905882, 1, 1)
|
||||
|
||||
[node name="ColorRect3" type="ColorRect" parent="."]
|
||||
margin_left = -39.0
|
||||
margin_top = 324.0
|
||||
margin_right = 284.0
|
||||
margin_bottom = 641.0
|
||||
rect_rotation = -30.0
|
||||
color = Color( 0, 0.0156863, 1, 1 )
|
||||
offset_left = 553.0
|
||||
offset_top = 491.0
|
||||
offset_right = 929.0
|
||||
offset_bottom = 770.0
|
||||
color = Color(0, 0.0156863, 1, 1)
|
||||
|
||||
[node name="ColorRect4" type="ColorRect" parent="."]
|
||||
margin_left = 271.0
|
||||
margin_top = 219.0
|
||||
margin_right = 594.0
|
||||
margin_bottom = 536.0
|
||||
color = Color( 0.686275, 0, 1, 1 )
|
||||
offset_left = 746.0
|
||||
offset_top = 397.0
|
||||
offset_right = 1077.0
|
||||
offset_bottom = 632.0
|
||||
color = Color(0.686275, 0, 1, 1)
|
||||
|
@ -1,18 +1,18 @@
|
||||
tool
|
||||
@tool
|
||||
extends Resource
|
||||
|
||||
export var color1 := Color.white
|
||||
export var max_duplicates := 0
|
||||
export var tags : Array
|
||||
export(int, "Weapon", "Passive", "Mastery") var type := 0
|
||||
export var icon : Texture
|
||||
export var custom_scene : PackedScene
|
||||
export var color2 := Color.white
|
||||
export var base_weight := 10.0
|
||||
export var is_notable := false
|
||||
export(String, MULTILINE) var multiplier_per_tag := ""
|
||||
export(String, MULTILINE) var multiplier_if_tag_present := ""
|
||||
export(String, MULTILINE) var multiplier_if_tag_not_present := ""
|
||||
export(String, MULTILINE) var max_tags_present := ""
|
||||
export var list_item_delimeter := " "
|
||||
export var list_row_delimeter := ";"
|
||||
@export var color1 := Color.WHITE
|
||||
@export var max_duplicates := 0
|
||||
@export var tags : Array
|
||||
@export_enum("Weapon", "Passive", "Mastery") var type := 0
|
||||
@export var icon : Texture
|
||||
@export var custom_scene : PackedScene
|
||||
@export var color2 := Color.WHITE
|
||||
@export var base_weight := 10.0
|
||||
@export var is_notable := false
|
||||
@export_multiline var multiplier_per_tag := ""
|
||||
@export_multiline var multiplier_if_tag_present := ""
|
||||
@export_multiline var multiplier_if_tag_not_present := ""
|
||||
@export_multiline var max_tags_present := ""
|
||||
@export var list_item_delimeter := " "
|
||||
@export var list_row_delimeter := ";"
|
||||
|
@ -1,17 +1,17 @@
|
||||
[gd_resource type="Resource" load_steps=3 format=2]
|
||||
[gd_resource type="Resource" load_steps=3 format=3 uid="uid://df0gymb6kab1q"]
|
||||
|
||||
[ext_resource path="res://example/Random Upgrades/icons/all_icons/all_icons_6.tres" type="Texture" id=1]
|
||||
[ext_resource path="res://example/Random Upgrades/upgrade_data.gd" type="Script" id=2]
|
||||
[ext_resource type="Texture2D" uid="uid://butx3l1jdcgcc" path="res://example/Random Upgrades/icons/all_icons/all_icons_6.tres" id="1_utkae"]
|
||||
[ext_resource type="Script" path="res://example/Random Upgrades/upgrade_data.gd" id="2"]
|
||||
|
||||
[resource]
|
||||
resource_name = "Upgrade: Elemental Damage"
|
||||
script = ExtResource( 2 )
|
||||
color1 = Color( 1, 1, 1, 1 )
|
||||
script = ExtResource("2")
|
||||
color1 = Color(1, 1, 1, 1)
|
||||
max_duplicates = 9
|
||||
tags = [ "elemental" ]
|
||||
tags = ["elemental"]
|
||||
type = 1
|
||||
icon = ExtResource( 1 )
|
||||
color2 = Color( 0.964706, 0.298039, 0.298039, 1 )
|
||||
icon = ExtResource("1_utkae")
|
||||
color2 = Color(0.964706, 0.298039, 0.298039, 1)
|
||||
base_weight = 10.0
|
||||
is_notable = false
|
||||
multiplier_per_tag = ""
|
||||
|
@ -1,17 +1,17 @@
|
||||
[gd_resource type="Resource" load_steps=3 format=2]
|
||||
[gd_resource type="Resource" load_steps=3 format=3 uid="uid://dys7hpijn82t0"]
|
||||
|
||||
[ext_resource path="res://example/Random Upgrades/icons/all_icons/all_icons_1.tres" type="Texture" id=1]
|
||||
[ext_resource path="res://example/Random Upgrades/upgrade_data.gd" type="Script" id=2]
|
||||
[ext_resource type="Texture2D" uid="uid://c3bx6kf7frbwk" path="res://example/Random Upgrades/icons/all_icons/all_icons_1.tres" id="1"]
|
||||
[ext_resource type="Script" path="res://example/Random Upgrades/upgrade_data.gd" id="2"]
|
||||
|
||||
[resource]
|
||||
resource_name = "Upgrade: Health"
|
||||
script = ExtResource( 2 )
|
||||
color1 = Color( 1, 1, 1, 1 )
|
||||
script = ExtResource("2")
|
||||
color1 = Color(1, 1, 1, 1)
|
||||
max_duplicates = 9
|
||||
tags = [ "health", "melee" ]
|
||||
tags = ["health", "melee"]
|
||||
type = 1
|
||||
icon = ExtResource( 1 )
|
||||
color2 = Color( 0.129412, 1, 0.243137, 1 )
|
||||
icon = ExtResource("1")
|
||||
color2 = Color(0.129412, 1, 0.243137, 1)
|
||||
base_weight = 10.0
|
||||
is_notable = false
|
||||
multiplier_per_tag = "strength 1.5 melee 2.0"
|
||||
|
@ -1,17 +1,17 @@
|
||||
[gd_resource type="Resource" load_steps=3 format=2]
|
||||
[gd_resource type="Resource" load_steps=3 format=3 uid="uid://dmrklxbnskel8"]
|
||||
|
||||
[ext_resource path="res://example/Random Upgrades/icons/all_icons/all_icons_5.tres" type="Texture" id=1]
|
||||
[ext_resource path="res://example/Random Upgrades/upgrade_data.gd" type="Script" id=2]
|
||||
[ext_resource type="Texture2D" uid="uid://djjpa8lluue1g" path="res://example/Random Upgrades/icons/all_icons/all_icons_5.tres" id="1_ardng"]
|
||||
[ext_resource type="Script" path="res://example/Random Upgrades/upgrade_data.gd" id="2"]
|
||||
|
||||
[resource]
|
||||
resource_name = "Mastery: Magic"
|
||||
script = ExtResource( 2 )
|
||||
color1 = Color( 1, 0.847059, 0.160784, 1 )
|
||||
script = ExtResource("2")
|
||||
color1 = Color(1, 0.847059, 0.160784, 1)
|
||||
max_duplicates = 9
|
||||
tags = [ "magic", "mastery" ]
|
||||
tags = ["magic", "mastery"]
|
||||
type = 2
|
||||
icon = ExtResource( 1 )
|
||||
color2 = Color( 0.407843, 0.192157, 0.827451, 1 )
|
||||
icon = ExtResource("1_ardng")
|
||||
color2 = Color(0.407843, 0.192157, 0.827451, 1)
|
||||
base_weight = 1.0
|
||||
is_notable = true
|
||||
multiplier_per_tag = "magic 1.2"
|
||||
|
@ -1,17 +1,17 @@
|
||||
[gd_resource type="Resource" load_steps=3 format=2]
|
||||
[gd_resource type="Resource" load_steps=3 format=3 uid="uid://d1suh8iai43st"]
|
||||
|
||||
[ext_resource path="res://example/Random Upgrades/icons/all_icons/all_icons_2.tres" type="Texture" id=1]
|
||||
[ext_resource path="res://example/Random Upgrades/upgrade_data.gd" type="Script" id=2]
|
||||
[ext_resource type="Texture2D" uid="uid://dfpwu4ra3fxgx" path="res://example/Random Upgrades/icons/all_icons/all_icons_2.tres" id="1_442ey"]
|
||||
[ext_resource type="Script" path="res://example/Random Upgrades/upgrade_data.gd" id="2"]
|
||||
|
||||
[resource]
|
||||
resource_name = "Mastery: Strength"
|
||||
script = ExtResource( 2 )
|
||||
color1 = Color( 1, 0.847059, 0.160784, 1 )
|
||||
script = ExtResource("2")
|
||||
color1 = Color(1, 0.847059, 0.160784, 1)
|
||||
max_duplicates = 9
|
||||
tags = [ "strength", "mastery" ]
|
||||
tags = ["strength", "mastery"]
|
||||
type = 2
|
||||
icon = ExtResource( 1 )
|
||||
color2 = Color( 0.992157, 0.941176, 0.2, 1 )
|
||||
icon = ExtResource("1_442ey")
|
||||
color2 = Color(0.992157, 0.941176, 0.2, 1)
|
||||
base_weight = 1.0
|
||||
is_notable = true
|
||||
multiplier_per_tag = ""
|
||||
|
@ -1,17 +1,17 @@
|
||||
[gd_resource type="Resource" load_steps=3 format=2]
|
||||
[gd_resource type="Resource" load_steps=3 format=3 uid="uid://2y7extlq12d5"]
|
||||
|
||||
[ext_resource path="res://example/Random Upgrades/icons/all_icons/all_icons_6.tres" type="Texture" id=1]
|
||||
[ext_resource path="res://example/Random Upgrades/upgrade_data.gd" type="Script" id=2]
|
||||
[ext_resource type="Texture2D" uid="uid://butx3l1jdcgcc" path="res://example/Random Upgrades/icons/all_icons/all_icons_6.tres" id="1_prpsx"]
|
||||
[ext_resource type="Script" path="res://example/Random Upgrades/upgrade_data.gd" id="2"]
|
||||
|
||||
[resource]
|
||||
resource_name = "Upgrade: Area of Effect"
|
||||
script = ExtResource( 2 )
|
||||
color1 = Color( 1, 1, 1, 1 )
|
||||
script = ExtResource("2")
|
||||
color1 = Color(1, 1, 1, 1)
|
||||
max_duplicates = 4
|
||||
tags = [ "aoe" ]
|
||||
tags = ["aoe"]
|
||||
type = 1
|
||||
icon = ExtResource( 1 )
|
||||
color2 = Color( 0.964706, 0.298039, 0.298039, 1 )
|
||||
icon = ExtResource("1_prpsx")
|
||||
color2 = Color(0.964706, 0.298039, 0.298039, 1)
|
||||
base_weight = 10.0
|
||||
is_notable = false
|
||||
multiplier_per_tag = ""
|
||||
|
@ -1,17 +1,17 @@
|
||||
[gd_resource type="Resource" load_steps=3 format=2]
|
||||
[gd_resource type="Resource" load_steps=3 format=3 uid="uid://ce2kulhm7amkp"]
|
||||
|
||||
[ext_resource path="res://example/Random Upgrades/icons/all_icons/all_icons_5.tres" type="Texture" id=1]
|
||||
[ext_resource path="res://example/Random Upgrades/upgrade_data.gd" type="Script" id=2]
|
||||
[ext_resource type="Texture2D" uid="uid://djjpa8lluue1g" path="res://example/Random Upgrades/icons/all_icons/all_icons_5.tres" id="1_we1lq"]
|
||||
[ext_resource type="Script" path="res://example/Random Upgrades/upgrade_data.gd" id="2"]
|
||||
|
||||
[resource]
|
||||
resource_name = "Upgrade: Magic"
|
||||
script = ExtResource( 2 )
|
||||
color1 = Color( 1, 1, 1, 1 )
|
||||
script = ExtResource("2")
|
||||
color1 = Color(1, 1, 1, 1)
|
||||
max_duplicates = 9
|
||||
tags = [ "magic" ]
|
||||
tags = ["magic"]
|
||||
type = 1
|
||||
icon = ExtResource( 1 )
|
||||
color2 = Color( 0.188235, 0.45098, 0.901961, 1 )
|
||||
icon = ExtResource("1_we1lq")
|
||||
color2 = Color(0.188235, 0.45098, 0.901961, 1)
|
||||
base_weight = 10.0
|
||||
is_notable = false
|
||||
multiplier_per_tag = ""
|
||||
|
@ -1,17 +1,17 @@
|
||||
[gd_resource type="Resource" load_steps=3 format=2]
|
||||
[gd_resource type="Resource" load_steps=3 format=3 uid="uid://c6hsg3j74vm56"]
|
||||
|
||||
[ext_resource path="res://example/Random Upgrades/icons/all_icons/all_icons_2.tres" type="Texture" id=1]
|
||||
[ext_resource path="res://example/Random Upgrades/upgrade_data.gd" type="Script" id=2]
|
||||
[ext_resource type="Texture2D" uid="uid://dfpwu4ra3fxgx" path="res://example/Random Upgrades/icons/all_icons/all_icons_2.tres" id="1"]
|
||||
[ext_resource type="Script" path="res://example/Random Upgrades/upgrade_data.gd" id="2"]
|
||||
|
||||
[resource]
|
||||
resource_name = "Upgrade: Strength"
|
||||
script = ExtResource( 2 )
|
||||
color1 = Color( 1, 1, 1, 1 )
|
||||
script = ExtResource("2")
|
||||
color1 = Color(1, 1, 1, 1)
|
||||
max_duplicates = 9
|
||||
tags = [ "strength" ]
|
||||
tags = ["strength"]
|
||||
type = 1
|
||||
icon = ExtResource( 1 )
|
||||
color2 = Color( 0.988235, 0.584314, 0.192157, 1 )
|
||||
icon = ExtResource("1")
|
||||
color2 = Color(0.980392, 0.584314, 0.203922, 1)
|
||||
base_weight = 10.0
|
||||
is_notable = false
|
||||
multiplier_per_tag = ""
|
||||
|
@ -1,17 +1,17 @@
|
||||
[gd_resource type="Resource" load_steps=3 format=2]
|
||||
[gd_resource type="Resource" load_steps=3 format=3 uid="uid://b78jqcpgef2ud"]
|
||||
|
||||
[ext_resource path="res://example/Random Upgrades/icons/all_icons/all_icons_3.tres" type="Texture" id=1]
|
||||
[ext_resource path="res://example/Random Upgrades/upgrade_data.gd" type="Script" id=2]
|
||||
[ext_resource type="Texture2D" uid="uid://d38giyxvkhl6g" path="res://example/Random Upgrades/icons/all_icons/all_icons_3.tres" id="1"]
|
||||
[ext_resource type="Script" path="res://example/Random Upgrades/upgrade_data.gd" id="2"]
|
||||
|
||||
[resource]
|
||||
resource_name = "Weapon: Axe"
|
||||
script = ExtResource( 2 )
|
||||
color1 = Color( 0.635294, 0.760784, 1, 1 )
|
||||
script = ExtResource("2")
|
||||
color1 = Color(0.635294, 0.760784, 1, 1)
|
||||
max_duplicates = 1
|
||||
tags = [ "strength", "melee", "weapon" ]
|
||||
tags = ["strength", "melee", "weapon"]
|
||||
type = 0
|
||||
icon = ExtResource( 1 )
|
||||
color2 = Color( 0.988235, 0.584314, 0.192157, 1 )
|
||||
icon = ExtResource("1")
|
||||
color2 = Color(0.980392, 0.584314, 0.203922, 1)
|
||||
base_weight = 10.0
|
||||
is_notable = false
|
||||
multiplier_per_tag = "strength 2.0"
|
||||
|
@ -1,17 +1,17 @@
|
||||
[gd_resource type="Resource" load_steps=3 format=2]
|
||||
[gd_resource type="Resource" load_steps=3 format=3 uid="uid://djqq1lqaevth5"]
|
||||
|
||||
[ext_resource path="res://example/Random Upgrades/icons/all_icons/all_icons_4.tres" type="Texture" id=1]
|
||||
[ext_resource path="res://example/Random Upgrades/upgrade_data.gd" type="Script" id=2]
|
||||
[ext_resource type="Texture2D" uid="uid://cluvoehgeqmcu" path="res://example/Random Upgrades/icons/all_icons/all_icons_4.tres" id="1_xleln"]
|
||||
[ext_resource type="Script" path="res://example/Random Upgrades/upgrade_data.gd" id="2"]
|
||||
|
||||
[resource]
|
||||
resource_name = "Weapon: Blizzard"
|
||||
script = ExtResource( 2 )
|
||||
color1 = Color( 0.635294, 0.760784, 1, 1 )
|
||||
script = ExtResource("2")
|
||||
color1 = Color(0.635294, 0.760784, 1, 1)
|
||||
max_duplicates = 1
|
||||
tags = [ "weapon", "magic", "elemental" ]
|
||||
tags = ["weapon", "magic", "elemental"]
|
||||
type = 0
|
||||
icon = ExtResource( 1 )
|
||||
color2 = Color( 0.189457, 0.452246, 0.902344, 1 )
|
||||
icon = ExtResource("1_xleln")
|
||||
color2 = Color(0.189457, 0.452246, 0.902344, 1)
|
||||
base_weight = 10.0
|
||||
is_notable = false
|
||||
multiplier_per_tag = "magic 2.0"
|
||||
|
@ -1,19 +1,19 @@
|
||||
[gd_resource type="Resource" load_steps=4 format=2]
|
||||
[gd_resource type="Resource" load_steps=4 format=3 uid="uid://60buw33oe30f"]
|
||||
|
||||
[ext_resource path="res://example/Random Upgrades/icons/all_icons/all_icons_4.tres" type="Texture" id=1]
|
||||
[ext_resource path="res://example/Random Upgrades/new scene.tscn" type="PackedScene" id=2]
|
||||
[ext_resource path="res://example/Random Upgrades/upgrade_data.gd" type="Script" id=3]
|
||||
[ext_resource type="PackedScene" uid="uid://b4cix5ebtpdbf" path="res://example/Random Upgrades/new scene.tscn" id="2"]
|
||||
[ext_resource type="Texture2D" uid="uid://cluvoehgeqmcu" path="res://example/Random Upgrades/icons/all_icons/all_icons_4.tres" id="2_eyyv1"]
|
||||
[ext_resource type="Script" path="res://example/Random Upgrades/upgrade_data.gd" id="3"]
|
||||
|
||||
[resource]
|
||||
resource_name = "Weapon: Chaos Blast"
|
||||
script = ExtResource( 3 )
|
||||
color1 = Color( 0.635294, 0.760784, 1, 1 )
|
||||
script = ExtResource("3")
|
||||
color1 = Color(0.635294, 0.760784, 1, 1)
|
||||
max_duplicates = 1
|
||||
tags = [ "weapon", "magic", "projectile", "legendary" ]
|
||||
tags = ["weapon", "magic", "projectile", "legendary"]
|
||||
type = 0
|
||||
icon = ExtResource( 1 )
|
||||
custom_scene = ExtResource( 2 )
|
||||
color2 = Color( 0.407843, 0.192157, 0.827451, 1 )
|
||||
icon = ExtResource("2_eyyv1")
|
||||
custom_scene = ExtResource("2")
|
||||
color2 = Color(0.407843, 0.192157, 0.827451, 1)
|
||||
base_weight = 1.0
|
||||
is_notable = true
|
||||
multiplier_per_tag = "magic 2.0"
|
||||
|
@ -1,17 +1,17 @@
|
||||
[gd_resource type="Resource" load_steps=3 format=2]
|
||||
[gd_resource type="Resource" load_steps=3 format=3 uid="uid://cux4x0qopwiqk"]
|
||||
|
||||
[ext_resource path="res://example/Random Upgrades/icons/all_icons/all_icons_3.tres" type="Texture" id=1]
|
||||
[ext_resource path="res://example/Random Upgrades/upgrade_data.gd" type="Script" id=2]
|
||||
[ext_resource type="Texture2D" uid="uid://d38giyxvkhl6g" path="res://example/Random Upgrades/icons/all_icons/all_icons_3.tres" id="1"]
|
||||
[ext_resource type="Script" path="res://example/Random Upgrades/upgrade_data.gd" id="2"]
|
||||
|
||||
[resource]
|
||||
resource_name = "Weapon: Daggers"
|
||||
script = ExtResource( 2 )
|
||||
color1 = Color( 0.635294, 0.760784, 1, 1 )
|
||||
script = ExtResource("2")
|
||||
color1 = Color(0.635294, 0.760784, 1, 1)
|
||||
max_duplicates = 1
|
||||
tags = [ "weapon", "strength", "projectile" ]
|
||||
tags = ["weapon", "strength", "projectile"]
|
||||
type = 0
|
||||
icon = ExtResource( 1 )
|
||||
color2 = Color( 0.988235, 0.584314, 0.192157, 1 )
|
||||
icon = ExtResource("1")
|
||||
color2 = Color(0.980392, 0.584314, 0.203922, 1)
|
||||
base_weight = 10.0
|
||||
is_notable = false
|
||||
multiplier_per_tag = "strength 2.0"
|
||||
|
@ -1,17 +1,17 @@
|
||||
[gd_resource type="Resource" load_steps=3 format=2]
|
||||
[gd_resource type="Resource" load_steps=3 format=3 uid="uid://rjxr4qtfc6qd"]
|
||||
|
||||
[ext_resource path="res://example/Random Upgrades/icons/all_icons/all_icons_4.tres" type="Texture" id=1]
|
||||
[ext_resource path="res://example/Random Upgrades/upgrade_data.gd" type="Script" id=2]
|
||||
[ext_resource type="Texture2D" uid="uid://cluvoehgeqmcu" path="res://example/Random Upgrades/icons/all_icons/all_icons_4.tres" id="1"]
|
||||
[ext_resource type="Script" path="res://example/Random Upgrades/upgrade_data.gd" id="2"]
|
||||
|
||||
[resource]
|
||||
resource_name = "Weapon: Fireball"
|
||||
script = ExtResource( 2 )
|
||||
color1 = Color( 0.635294, 0.760784, 1, 1 )
|
||||
script = ExtResource("2")
|
||||
color1 = Color(0.635294, 0.760784, 1, 1)
|
||||
max_duplicates = 1
|
||||
tags = [ "weapon", "magic", "projectile", "elemental" ]
|
||||
tags = ["weapon", "magic", "projectile", "elemental"]
|
||||
type = 0
|
||||
icon = ExtResource( 1 )
|
||||
color2 = Color( 0.189457, 0.452246, 0.902344, 1 )
|
||||
icon = ExtResource("1")
|
||||
color2 = Color(0.189457, 0.452246, 0.902344, 1)
|
||||
base_weight = 10.0
|
||||
is_notable = false
|
||||
multiplier_per_tag = "magic 2.0"
|
||||
|
@ -1,19 +1,19 @@
|
||||
[gd_resource type="Resource" load_steps=4 format=2]
|
||||
[gd_resource type="Resource" load_steps=4 format=3 uid="uid://c1mrcevxrm5kv"]
|
||||
|
||||
[ext_resource path="res://example/Random Upgrades/icons/all_icons/all_icons_3.tres" type="Texture" id=1]
|
||||
[ext_resource path="res://example/Random Upgrades/new scene.tscn" type="PackedScene" id=2]
|
||||
[ext_resource path="res://example/Random Upgrades/upgrade_data.gd" type="Script" id=3]
|
||||
[ext_resource type="PackedScene" uid="uid://b4cix5ebtpdbf" path="res://example/Random Upgrades/new scene.tscn" id="2"]
|
||||
[ext_resource type="Texture2D" uid="uid://d38giyxvkhl6g" path="res://example/Random Upgrades/icons/all_icons/all_icons_3.tres" id="2_kfnh0"]
|
||||
[ext_resource type="Script" path="res://example/Random Upgrades/upgrade_data.gd" id="3"]
|
||||
|
||||
[resource]
|
||||
resource_name = "Weapon: Giga Sword"
|
||||
script = ExtResource( 3 )
|
||||
color1 = Color( 0.635294, 0.760784, 1, 1 )
|
||||
script = ExtResource("3")
|
||||
color1 = Color(0.635294, 0.760784, 1, 1)
|
||||
max_duplicates = 1
|
||||
tags = [ "weapon", "strength", "melee", "legendary" ]
|
||||
tags = ["weapon", "strength", "melee", "legendary"]
|
||||
type = 0
|
||||
icon = ExtResource( 1 )
|
||||
custom_scene = ExtResource( 2 )
|
||||
color2 = Color( 0.992157, 0.941176, 0.2, 1 )
|
||||
icon = ExtResource("2_kfnh0")
|
||||
custom_scene = ExtResource("2")
|
||||
color2 = Color(0.992157, 0.941176, 0.2, 1)
|
||||
base_weight = 1.0
|
||||
is_notable = true
|
||||
multiplier_per_tag = "strength 2.0"
|
||||
|
@ -1,17 +1,17 @@
|
||||
[gd_resource type="Resource" load_steps=3 format=2]
|
||||
[gd_resource type="Resource" load_steps=3 format=3 uid="uid://b0kdw067vtgvn"]
|
||||
|
||||
[ext_resource path="res://example/Random Upgrades/icons/all_icons/all_icons_4.tres" type="Texture" id=1]
|
||||
[ext_resource path="res://example/Random Upgrades/upgrade_data.gd" type="Script" id=2]
|
||||
[ext_resource type="Texture2D" uid="uid://cluvoehgeqmcu" path="res://example/Random Upgrades/icons/all_icons/all_icons_4.tres" id="1"]
|
||||
[ext_resource type="Script" path="res://example/Random Upgrades/upgrade_data.gd" id="2"]
|
||||
|
||||
[resource]
|
||||
resource_name = "Weapon: Lightning"
|
||||
script = ExtResource( 2 )
|
||||
color1 = Color( 0.635294, 0.760784, 1, 1 )
|
||||
script = ExtResource("2")
|
||||
color1 = Color(0.635294, 0.760784, 1, 1)
|
||||
max_duplicates = 1
|
||||
tags = [ "weapon", "magic", "elemental" ]
|
||||
tags = ["weapon", "magic", "elemental"]
|
||||
type = 0
|
||||
icon = ExtResource( 1 )
|
||||
color2 = Color( 0.189457, 0.452246, 0.902344, 1 )
|
||||
icon = ExtResource("1")
|
||||
color2 = Color(0.189457, 0.452246, 0.902344, 1)
|
||||
base_weight = 10.0
|
||||
is_notable = false
|
||||
multiplier_per_tag = "magic 2.0"
|
||||
|
@ -1,17 +1,17 @@
|
||||
[gd_resource type="Resource" load_steps=3 format=2]
|
||||
[gd_resource type="Resource" load_steps=3 format=3 uid="uid://xl0yx8uq6bfp"]
|
||||
|
||||
[ext_resource path="res://example/Random Upgrades/icons/all_icons/all_icons_3.tres" type="Texture" id=1]
|
||||
[ext_resource path="res://example/Random Upgrades/upgrade_data.gd" type="Script" id=2]
|
||||
[ext_resource type="Texture2D" uid="uid://d38giyxvkhl6g" path="res://example/Random Upgrades/icons/all_icons/all_icons_3.tres" id="1"]
|
||||
[ext_resource type="Script" path="res://example/Random Upgrades/upgrade_data.gd" id="2"]
|
||||
|
||||
[resource]
|
||||
resource_name = "Weapon: Spear"
|
||||
script = ExtResource( 2 )
|
||||
color1 = Color( 0.635294, 0.760784, 1, 1 )
|
||||
script = ExtResource("2")
|
||||
color1 = Color(0.635294, 0.760784, 1, 1)
|
||||
max_duplicates = 1
|
||||
tags = [ "weapon", "strength", "melee" ]
|
||||
tags = ["weapon", "strength", "melee"]
|
||||
type = 0
|
||||
icon = ExtResource( 1 )
|
||||
color2 = Color( 0.988235, 0.584314, 0.192157, 1 )
|
||||
icon = ExtResource("1")
|
||||
color2 = Color(0.980392, 0.584314, 0.203922, 1)
|
||||
base_weight = 10.0
|
||||
is_notable = false
|
||||
multiplier_per_tag = "strength 2.0"
|
||||
|
@ -1,8 +1,9 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://c08qavfwqr3k7"
|
||||
path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
@ -10,26 +11,24 @@ metadata={
|
||||
[deps]
|
||||
|
||||
source_file="res://icon.png"
|
||||
dest_files=[ "res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" ]
|
||||
dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_mode=0
|
||||
compress/hdr_compression=1
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
flags/repeat=0
|
||||
flags/filter=true
|
||||
flags/mipmaps=false
|
||||
flags/anisotropic=false
|
||||
flags/srgb=2
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/HDR_as_SRGB=false
|
||||
process/invert_color=false
|
||||
process/normal_map_invert_y=false
|
||||
stream=false
|
||||
size_limit=0
|
||||
detect_3d=true
|
||||
svg/scale=1.0
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
|
@ -6,44 +6,50 @@
|
||||
; [section] ; section goes between []
|
||||
; param=value ; assign values to parameters
|
||||
|
||||
config_version=4
|
||||
config_version=5
|
||||
|
||||
_global_script_classes=[ {
|
||||
"base": "Reference",
|
||||
"class": "CellEditor",
|
||||
"language": "GDScript",
|
||||
"path": "res://addons/resources_speadsheet_view/typed_cells/cell_editor.gd"
|
||||
_global_script_classes=[{
|
||||
"base": "RefCounted",
|
||||
"class": &"CellEditor",
|
||||
"language": &"GDScript",
|
||||
"path": "res://addons/resources_spreadsheet_view/typed_cells/cell_editor.gd"
|
||||
}, {
|
||||
"base": "GridContainer",
|
||||
"class": "SettingsGrid",
|
||||
"language": "GDScript",
|
||||
"path": "res://addons/resources_speadsheet_view/settings_grid.gd"
|
||||
"class": &"SettingsGrid",
|
||||
"language": &"GDScript",
|
||||
"path": "res://addons/resources_spreadsheet_view/settings_grid.gd"
|
||||
}, {
|
||||
"base": "Control",
|
||||
"class": "SheetsDockEditor",
|
||||
"language": "GDScript",
|
||||
"path": "res://addons/resources_speadsheet_view/typed_editors/dock_base.gd"
|
||||
"class": &"SheetsDockEditor",
|
||||
"language": &"GDScript",
|
||||
"path": "res://addons/resources_spreadsheet_view/typed_editors/dock_base.gd"
|
||||
}, {
|
||||
"base": "Reference",
|
||||
"class": "TextEditingUtils",
|
||||
"language": "GDScript",
|
||||
"path": "res://addons/resources_speadsheet_view/text_editing_utils.gd"
|
||||
"base": "RefCounted",
|
||||
"class": &"TextEditingUtils",
|
||||
"language": &"GDScript",
|
||||
"path": "res://addons/resources_spreadsheet_view/text_editing_utils.gd"
|
||||
}, {
|
||||
"base": "Control",
|
||||
"class": &"ThemeColorSetter",
|
||||
"language": &"GDScript",
|
||||
"path": "res://addons/resources_spreadsheet_view/editor_color_setter.gd"
|
||||
}, {
|
||||
"base": "Button",
|
||||
"class": "ThemeIconButton",
|
||||
"language": "GDScript",
|
||||
"path": "res://addons/resources_speadsheet_view/editor_icon_button.gd"
|
||||
"class": &"ThemeIconButton",
|
||||
"language": &"GDScript",
|
||||
"path": "res://addons/resources_spreadsheet_view/editor_icon_button.gd"
|
||||
}, {
|
||||
"base": "Control",
|
||||
"class": "ThemeStylebox",
|
||||
"language": "GDScript",
|
||||
"path": "res://addons/resources_speadsheet_view/editor_stylebox_overrider.gd"
|
||||
} ]
|
||||
"class": &"ThemeStylebox",
|
||||
"language": &"GDScript",
|
||||
"path": "res://addons/resources_spreadsheet_view/editor_stylebox_overrider.gd"
|
||||
}]
|
||||
_global_script_class_icons={
|
||||
"CellEditor": "",
|
||||
"SettingsGrid": "",
|
||||
"SheetsDockEditor": "",
|
||||
"TextEditingUtils": "",
|
||||
"ThemeColorSetter": "",
|
||||
"ThemeIconButton": "",
|
||||
"ThemeStylebox": ""
|
||||
}
|
||||
@ -58,9 +64,13 @@ resources_spreadsheet_view/clip_headers=true
|
||||
resources_spreadsheet_view/dupe_arrays=true
|
||||
resources_spreadsheet_view/array_min_width=128.0
|
||||
|
||||
[application]
|
||||
|
||||
config/features=PackedStringArray("4.0")
|
||||
|
||||
[editor_plugins]
|
||||
|
||||
enabled=PoolStringArray( "res://addons/resources_speadsheet_view/plugin.cfg" )
|
||||
enabled=PackedStringArray("res://addons/resources_spreadsheet_view/plugin.cfg")
|
||||
|
||||
[rendering]
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user