mirror of
https://github.com/Relintai/godot-resources-as-sheets-plugin.git
synced 2024-11-10 10:12:08 +01:00
Implement array editing
This commit is contained in:
parent
9570619972
commit
da2af14c30
@ -154,6 +154,9 @@ 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:
|
||||
return a.size() > b.size()
|
||||
|
||||
return a > b
|
||||
|
||||
|
||||
@ -361,7 +364,7 @@ func _try_open_docks(cell : Control):
|
||||
var column_index = _get_cell_column(cell)
|
||||
for x in get_node(path_property_editors).get_children():
|
||||
x.visible = x.try_edit_value(
|
||||
column_editors[column_index].get_value(cell),
|
||||
rows[_get_cell_row(cell)].get(columns[column_index]),
|
||||
column_types[column_index],
|
||||
column_hints[column_index]
|
||||
)
|
||||
@ -402,9 +405,10 @@ func set_edited_cells_values(new_cell_values : Array, update_whole_row : bool =
|
||||
|
||||
func get_edited_cells_values() -> Array:
|
||||
var arr := edited_cells.duplicate()
|
||||
var cell_editor = column_editors[_get_cell_column(edited_cells[0])]
|
||||
var column_index := _get_cell_column(edited_cells[0])
|
||||
var cell_editor = column_editors[column_index]
|
||||
for i in arr.size():
|
||||
arr[i] = cell_editor.get_value(arr[i])
|
||||
arr[i] = rows[_get_cell_row(arr[i])].get(columns[column_index])
|
||||
|
||||
return arr
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
[gd_scene load_steps=13 format=2]
|
||||
[gd_scene load_steps=15 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]
|
||||
@ -10,6 +10,8 @@
|
||||
[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]
|
||||
|
||||
[sub_resource type="Image" id=3]
|
||||
data = {
|
||||
@ -47,7 +49,7 @@ __meta__ = {
|
||||
"_edit_lock_": true
|
||||
}
|
||||
table_header_scene = ExtResource( 6 )
|
||||
cell_editor_classes = [ ExtResource( 3 ), ExtResource( 5 ), ExtResource( 9 ), ExtResource( 2 ) ]
|
||||
cell_editor_classes = [ 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/RecentPaths")
|
||||
path_table_root = NodePath("HeaderContentSplit/MarginContainer/FooterContentSplit/Panel/Scroll/MarginContainer/TableGrid")
|
||||
@ -297,6 +299,12 @@ __meta__ = {
|
||||
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
|
||||
|
45
addons/resources_speadsheet_view/typed_cells/array.tscn
Normal file
45
addons/resources_speadsheet_view/typed_cells/array.tscn
Normal file
@ -0,0 +1,45 @@
|
||||
[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( 58, 0 )
|
||||
size_flags_vertical = 9
|
||||
__meta__ = {
|
||||
"_edit_lock_": true
|
||||
}
|
||||
|
||||
[node name="Box" type="HFlowContainer" parent="."]
|
||||
margin_right = 128.0
|
||||
margin_bottom = 14.0
|
||||
rect_min_size = Vector2( 128, 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 )
|
@ -22,10 +22,6 @@ func set_value(node : Control, value):
|
||||
node.text = TextEditingUtils.show_non_typing(str(value))
|
||||
|
||||
|
||||
func get_value(node : Control):
|
||||
return str2var(TextEditingUtils.revert_non_typing(node.text))
|
||||
|
||||
|
||||
func get_text_value(node : Control):
|
||||
return node.text
|
||||
|
||||
|
@ -0,0 +1,33 @@
|
||||
extends CellEditor
|
||||
|
||||
|
||||
func can_edit_value(value, type, property_hint) -> bool:
|
||||
return type == TYPE_STRING_ARRAY || type == TYPE_ARRAY
|
||||
|
||||
|
||||
func create_cell(caller : Control) -> Control:
|
||||
return load(CELL_SCENE_DIR + "array.tscn").instance()
|
||||
|
||||
|
||||
func set_value(node : Control, value):
|
||||
var children = node.get_node("Box").get_children()
|
||||
while children.size() < value.size():
|
||||
children.append(Label.new())
|
||||
node.get_node("Box").add_child(children[children.size() - 1])
|
||||
|
||||
for i in children.size():
|
||||
if i >= value.size():
|
||||
children[i].visible = false
|
||||
|
||||
else:
|
||||
children[i].visible = true
|
||||
children[i].text = str(value[i])
|
||||
children[i].self_modulate = Color(str(value[i]).hash()) + Color(0.25, 0.25, 0.25, 1.0)
|
||||
|
||||
|
||||
func get_text_value(node : Control):
|
||||
return ""
|
||||
|
||||
|
||||
func get_text_length(node : Control):
|
||||
return -1
|
@ -13,10 +13,6 @@ func set_value(node : Control, value):
|
||||
_set_value_internal(node, !node.text.begins_with("O"))
|
||||
|
||||
|
||||
func get_value(node : Control):
|
||||
return node.text == "ON"
|
||||
|
||||
|
||||
func _set_value_internal(node, value):
|
||||
node.text = "ON" if value else "off"
|
||||
node.self_modulate.a = 1.0 if value else 0.2
|
||||
|
@ -19,15 +19,6 @@ func can_edit_value(value, type, property_hint) -> bool:
|
||||
return type == TYPE_COLOR
|
||||
|
||||
|
||||
func get_value(node : Control):
|
||||
var val = TextEditingUtils.revert_non_typing(node.text)
|
||||
if val.length() == 3 or val.length() == 6 or val.length() == 8:
|
||||
return Color(val)
|
||||
|
||||
else:
|
||||
return _cached_color
|
||||
|
||||
|
||||
func set_value(node : Control, value):
|
||||
if value is String:
|
||||
node.text = TextEditingUtils.show_non_typing(str(value))
|
||||
|
@ -34,11 +34,6 @@ func set_value(node : Control, value):
|
||||
previewer.queue_resource_preview(value.resource_path, self, "_on_preview_loaded", node)
|
||||
|
||||
|
||||
func get_value(node : Control):
|
||||
if node.editor_description == "": return null
|
||||
return load(node.editor_description)
|
||||
|
||||
|
||||
func set_color(node : Control, color : Color):
|
||||
node.get_node("Back").modulate = color * 0.6 if node.editor_description == "" else color
|
||||
|
||||
|
114
addons/resources_speadsheet_view/typed_editors/dock_array.gd
Normal file
114
addons/resources_speadsheet_view/typed_editors/dock_array.gd
Normal file
@ -0,0 +1,114 @@
|
||||
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"
|
||||
|
||||
var _stored_value
|
||||
var _stored_type := 0
|
||||
|
||||
|
||||
func _ready():
|
||||
recent_container.get_child(1).add_item("Add")
|
||||
recent_container.get_child(1).add_item("Erase")
|
||||
recent_container.get_child(1).add_item("Delete From Recent")
|
||||
recent_container.get_child(1).select(0)
|
||||
|
||||
|
||||
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
|
||||
):
|
||||
return false
|
||||
|
||||
_stored_type = type
|
||||
_stored_value = value.duplicate() # Generic arrays are passed by reference
|
||||
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(4).visible = is_generic_array
|
||||
|
||||
return true
|
||||
|
||||
|
||||
func _add_value(value):
|
||||
_stored_value.append(value)
|
||||
var values = sheet.get_edited_cells_values()
|
||||
var cur_value
|
||||
for i in values.size():
|
||||
cur_value = values[i]
|
||||
cur_value.append(value)
|
||||
values[i] = cur_value
|
||||
|
||||
sheet.set_edited_cells_values(values)
|
||||
|
||||
|
||||
func _remove_value(value):
|
||||
_stored_value.erase(value)
|
||||
var values = sheet.get_edited_cells_values()
|
||||
var cur_value
|
||||
for i in values.size():
|
||||
cur_value = values[i]
|
||||
if cur_value.has(value): # erase() not defined in PoolArrays
|
||||
cur_value.remove(cur_value.find(value))
|
||||
|
||||
values[i] = cur_value
|
||||
|
||||
sheet.set_edited_cells_values(values)
|
||||
|
||||
|
||||
func _add_recent(value):
|
||||
for x in recent_container.get_children():
|
||||
if x.text == str(value):
|
||||
return
|
||||
|
||||
var node := Button.new()
|
||||
node.text = str(value)
|
||||
node.connect("pressed", self, "_on_recent_clicked", [node, value])
|
||||
recent_container.add_child(node)
|
||||
|
||||
|
||||
func _on_recent_clicked(button, value):
|
||||
var val = recent_container.get_child(1).selected
|
||||
value_input.text = str(value)
|
||||
if val == 0:
|
||||
_add_value(value)
|
||||
|
||||
if val == 1:
|
||||
_remove_value(value)
|
||||
|
||||
if val == 2:
|
||||
button.queue_free()
|
||||
|
||||
|
||||
func _on_Remove_pressed():
|
||||
_remove_value(str2var(value_input.text))
|
||||
|
||||
|
||||
func _on_ClearRecent_pressed():
|
||||
for i in recent_container.get_child_count():
|
||||
if i == 0: continue
|
||||
recent_container.get_child(i).free()
|
||||
|
||||
|
||||
func _on_Float_pressed():
|
||||
_add_value(float(value_input.text))
|
||||
|
||||
|
||||
func _on_Int_pressed():
|
||||
_add_value(int(value_input.text))
|
||||
|
||||
|
||||
func _on_String_pressed():
|
||||
_add_value(value_input.text)
|
||||
_add_recent(value_input.text)
|
||||
|
||||
|
||||
func _on_Variant_pressed():
|
||||
_add_value(str2var(value_input.text))
|
210
addons/resources_speadsheet_view/typed_editors/dock_array.tscn
Normal file
210
addons/resources_speadsheet_view/typed_editors/dock_array.tscn
Normal file
@ -0,0 +1,210 @@
|
||||
[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="Panel" type="Panel" parent="HBoxContainer/HBoxContainer/Panel"]
|
||||
margin_right = 320.0
|
||||
margin_bottom = 52.0
|
||||
|
||||
[node name="Label" type="Label" parent="HBoxContainer/HBoxContainer/Panel"]
|
||||
margin_right = 320.0
|
||||
margin_bottom = 52.0
|
||||
rect_min_size = Vector2( 128, 0 )
|
||||
size_flags_vertical = 5
|
||||
text = "[]"
|
||||
align = 2
|
||||
autowrap = 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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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 = 3.0
|
||||
margin_right = 48.0
|
||||
margin_bottom = 17.0
|
||||
text = "Recent:"
|
||||
|
||||
[node name="OptionButton" type="OptionButton" parent="HBoxContainer/Control2/HBoxContainer/HFlowContainer"]
|
||||
margin_left = 52.0
|
||||
margin_right = 141.0
|
||||
margin_bottom = 20.0
|
||||
text = "Set Mode"
|
||||
|
||||
[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"]
|
@ -4,11 +4,10 @@ extends Resource
|
||||
|
||||
export var color1 := Color.white
|
||||
export var max_duplicates := 0
|
||||
export var tags := "tag_1 tag_2 tag_3"
|
||||
export var tags : Array
|
||||
export var icon : Texture
|
||||
export var custom_scene : PackedScene
|
||||
export var color2 := Color.white
|
||||
export var tag_delimeter := " "
|
||||
export var base_weight := 10.0
|
||||
export var is_notable := false
|
||||
export(String, MULTILINE) var multiplier_per_tag := ""
|
||||
@ -17,11 +16,3 @@ 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 := ";"
|
||||
|
||||
var is_cached := false
|
||||
var tag_array := []
|
||||
var requires_one_of_tags_array := []
|
||||
var multiplier_per_tag_dict := {}
|
||||
var multiplier_if_tag_present_dict := {}
|
||||
var multiplier_if_tag_not_present_dict := {}
|
||||
var max_tags_present_dict := {}
|
||||
|
@ -8,10 +8,9 @@ resource_name = "Upgrade: Elemental Damage"
|
||||
script = ExtResource( 1 )
|
||||
color1 = Color( 1, 1, 1, 1 )
|
||||
max_duplicates = 9
|
||||
tags = "elemental"
|
||||
tags = [ "elemental" ]
|
||||
icon = ExtResource( 2 )
|
||||
color2 = Color( 0.964706, 0.298039, 0.298039, 1 )
|
||||
tag_delimeter = " "
|
||||
base_weight = 10.0
|
||||
is_notable = false
|
||||
multiplier_per_tag = ""
|
||||
|
@ -8,10 +8,9 @@ resource_name = "Upgrade: Health"
|
||||
script = ExtResource( 1 )
|
||||
color1 = Color( 1, 1, 1, 1 )
|
||||
max_duplicates = 9
|
||||
tags = "health melee"
|
||||
tags = [ "health", "melee" ]
|
||||
icon = ExtResource( 2 )
|
||||
color2 = Color( 0.129412, 1, 0.243137, 1 )
|
||||
tag_delimeter = " "
|
||||
base_weight = 10.0
|
||||
is_notable = false
|
||||
multiplier_per_tag = "strength 1.5 melee 2.0"
|
||||
|
@ -8,10 +8,9 @@ resource_name = "Upgrade: Area of Effect"
|
||||
script = ExtResource( 1 )
|
||||
color1 = Color( 1, 1, 1, 1 )
|
||||
max_duplicates = 4
|
||||
tags = "aoe"
|
||||
tags = [ "aoe" ]
|
||||
icon = ExtResource( 2 )
|
||||
color2 = Color( 0.964706, 0.298039, 0.298039, 1 )
|
||||
tag_delimeter = " "
|
||||
base_weight = 10.0
|
||||
is_notable = false
|
||||
multiplier_per_tag = ""
|
||||
|
@ -8,10 +8,9 @@ resource_name = "Upgrade: Magic"
|
||||
script = ExtResource( 1 )
|
||||
color1 = Color( 1, 1, 1, 1 )
|
||||
max_duplicates = 9
|
||||
tags = "magic"
|
||||
tags = [ "magic" ]
|
||||
icon = ExtResource( 2 )
|
||||
color2 = Color( 0.188235, 0.45098, 0.901961, 1 )
|
||||
tag_delimeter = " "
|
||||
base_weight = 10.0
|
||||
is_notable = false
|
||||
multiplier_per_tag = ""
|
||||
|
@ -8,10 +8,9 @@ resource_name = "Upgrade: Strength"
|
||||
script = ExtResource( 1 )
|
||||
color1 = Color( 1, 1, 1, 1 )
|
||||
max_duplicates = 9
|
||||
tags = "strength"
|
||||
tags = [ "strength" ]
|
||||
icon = ExtResource( 2 )
|
||||
color2 = Color( 0.988235, 0.584314, 0.192157, 1 )
|
||||
tag_delimeter = " "
|
||||
base_weight = 10.0
|
||||
is_notable = false
|
||||
multiplier_per_tag = ""
|
||||
|
@ -8,10 +8,9 @@ resource_name = "Weapon: Axe"
|
||||
script = ExtResource( 1 )
|
||||
color1 = Color( 1, 1, 0.2, 1 )
|
||||
max_duplicates = 1
|
||||
tags = "weapon strength aoe melee"
|
||||
tags = [ "strength", "melee", "weapon" ]
|
||||
icon = ExtResource( 2 )
|
||||
color2 = Color( 0.988235, 0.584314, 0.192157, 1 )
|
||||
tag_delimeter = " "
|
||||
base_weight = 10.0
|
||||
is_notable = false
|
||||
multiplier_per_tag = "strength 2.0"
|
||||
|
@ -8,10 +8,9 @@ resource_name = "Weapon: Blizzard"
|
||||
script = ExtResource( 1 )
|
||||
color1 = Color( 1, 1, 0.2, 1 )
|
||||
max_duplicates = 1
|
||||
tags = "weapon magic aoe elemental"
|
||||
tags = [ "weapon", "magic", "elemental" ]
|
||||
icon = ExtResource( 2 )
|
||||
color2 = Color( 0.189457, 0.452246, 0.902344, 1 )
|
||||
tag_delimeter = " "
|
||||
base_weight = 10.0
|
||||
is_notable = false
|
||||
multiplier_per_tag = "magic 2.0"
|
||||
|
@ -9,11 +9,10 @@ resource_name = "Weapon: Chaos Blast"
|
||||
script = ExtResource( 1 )
|
||||
color1 = Color( 1, 1, 0.2, 1 )
|
||||
max_duplicates = 1
|
||||
tags = "weapon magic legendary chaosblast aoe"
|
||||
tags = [ "weapon", "magic", "projectile" ]
|
||||
icon = ExtResource( 2 )
|
||||
custom_scene = ExtResource( 3 )
|
||||
color2 = Color( 0.40631, 0.190945, 0.832031, 1 )
|
||||
tag_delimeter = " "
|
||||
base_weight = 1.0
|
||||
is_notable = false
|
||||
multiplier_per_tag = "magic 2.0"
|
||||
|
@ -8,10 +8,9 @@ resource_name = "Weapon: Daggers"
|
||||
script = ExtResource( 1 )
|
||||
color1 = Color( 1, 1, 0.2, 1 )
|
||||
max_duplicates = 1
|
||||
tags = "weapon strength dagger projectile"
|
||||
tags = [ "weapon", "strength", "projectile" ]
|
||||
icon = ExtResource( 2 )
|
||||
color2 = Color( 0.988235, 0.584314, 0.192157, 1 )
|
||||
tag_delimeter = " "
|
||||
base_weight = 10.0
|
||||
is_notable = true
|
||||
multiplier_per_tag = "strength 2.0"
|
||||
|
@ -8,10 +8,9 @@ resource_name = "Weapon: Fireball"
|
||||
script = ExtResource( 1 )
|
||||
color1 = Color( 1, 1, 0.2, 1 )
|
||||
max_duplicates = 1
|
||||
tags = "weapon magic fireball projectile elemental"
|
||||
tags = [ "weapon", "magic", "projectile", "elemental" ]
|
||||
icon = ExtResource( 2 )
|
||||
color2 = Color( 0.189457, 0.452246, 0.902344, 1 )
|
||||
tag_delimeter = " "
|
||||
base_weight = 10.0
|
||||
is_notable = true
|
||||
multiplier_per_tag = "magic 2.0"
|
||||
|
@ -9,11 +9,10 @@ resource_name = "Weapon: Giga Sword"
|
||||
script = ExtResource( 1 )
|
||||
color1 = Color( 1, 1, 0.2, 1 )
|
||||
max_duplicates = 1
|
||||
tags = "weapon strength legendary gigasword melee"
|
||||
tags = [ "weapon", "strength", "melee" ]
|
||||
icon = ExtResource( 2 )
|
||||
custom_scene = ExtResource( 3 )
|
||||
color2 = Color( 0.988235, 0.93848, 0.192157, 1 )
|
||||
tag_delimeter = " "
|
||||
base_weight = 1.0
|
||||
is_notable = true
|
||||
multiplier_per_tag = "strength 2.0"
|
||||
|
@ -8,10 +8,9 @@ resource_name = "Weapon: Lightning"
|
||||
script = ExtResource( 1 )
|
||||
color1 = Color( 1, 1, 0.2, 1 )
|
||||
max_duplicates = 1
|
||||
tags = "weapon magic lightning elemental"
|
||||
tags = [ "weapon", "magic", "elemental" ]
|
||||
icon = ExtResource( 2 )
|
||||
color2 = Color( 0.189457, 0.452246, 0.902344, 1 )
|
||||
tag_delimeter = " "
|
||||
base_weight = 10.0
|
||||
is_notable = true
|
||||
multiplier_per_tag = "magic 2.0"
|
||||
|
@ -8,10 +8,9 @@ resource_name = "Weapon: Spear"
|
||||
script = ExtResource( 1 )
|
||||
color1 = Color( 1, 1, 0.2, 1 )
|
||||
max_duplicates = 1
|
||||
tags = "weapon strength spear melee"
|
||||
tags = [ "weapon", "strength", "melee" ]
|
||||
icon = ExtResource( 2 )
|
||||
color2 = Color( 0.988235, 0.584314, 0.192157, 1 )
|
||||
tag_delimeter = " "
|
||||
base_weight = 10.0
|
||||
is_notable = true
|
||||
multiplier_per_tag = "strength 2.0"
|
||||
|
BIN
images/2022-09-23-17-25-28.png
Normal file
BIN
images/2022-09-23-17-25-28.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 86 KiB |
Loading…
Reference in New Issue
Block a user