gd: added input addon
This commit is contained in:
113
addons/guide/editor/array_edit/array_edit.gd
Normal file
113
addons/guide/editor/array_edit/array_edit.gd
Normal file
@ -0,0 +1,113 @@
|
||||
@tool
|
||||
extends Container
|
||||
const Utils = preload("../utils.gd")
|
||||
|
||||
@export var item_scene:PackedScene
|
||||
|
||||
@export var title:String = "":
|
||||
set(value):
|
||||
title = value
|
||||
_refresh()
|
||||
|
||||
@export var add_tooltip:String:
|
||||
set(value):
|
||||
add_tooltip = value
|
||||
_refresh()
|
||||
|
||||
@export var clear_tooltip:String:
|
||||
set(value):
|
||||
clear_tooltip = value
|
||||
_refresh()
|
||||
|
||||
@export var item_separation:int = 8:
|
||||
set(value):
|
||||
item_separation = value
|
||||
_refresh()
|
||||
|
||||
|
||||
@export var collapsed:bool = false:
|
||||
set(value):
|
||||
collapsed = value
|
||||
_refresh()
|
||||
|
||||
signal add_requested()
|
||||
signal delete_requested(index:int)
|
||||
signal move_requested(from:int, to:int)
|
||||
signal insert_requested(index:int)
|
||||
signal duplicate_requested(index:int)
|
||||
signal clear_requested()
|
||||
signal collapse_state_changed(collapsed:bool)
|
||||
|
||||
@onready var _add_button:Button = %AddButton
|
||||
@onready var _clear_button:Button = %ClearButton
|
||||
@onready var _contents:Container = %Contents
|
||||
@onready var _title_label:Label = %TitleLabel
|
||||
@onready var _collapse_button:Button = %CollapseButton
|
||||
@onready var _expand_button:Button = %ExpandButton
|
||||
@onready var _count_label:Label = %CountLabel
|
||||
|
||||
func _ready():
|
||||
_add_button.icon = get_theme_icon("Add", "EditorIcons")
|
||||
_add_button.pressed.connect(func(): add_requested.emit())
|
||||
|
||||
_clear_button.icon = get_theme_icon("Clear", "EditorIcons")
|
||||
_clear_button.pressed.connect(func(): clear_requested.emit())
|
||||
|
||||
_collapse_button.icon = get_theme_icon("Collapse", "EditorIcons")
|
||||
_collapse_button.pressed.connect(_on_collapse_pressed)
|
||||
|
||||
_expand_button.icon = get_theme_icon("Forward", "EditorIcons")
|
||||
_expand_button.pressed.connect(_on_expand_pressed)
|
||||
|
||||
|
||||
_refresh()
|
||||
|
||||
|
||||
func _refresh():
|
||||
if is_instance_valid(_add_button):
|
||||
_add_button.tooltip_text = add_tooltip
|
||||
if is_instance_valid(_clear_button):
|
||||
_clear_button.tooltip_text = clear_tooltip
|
||||
_clear_button.visible = _contents.get_child_count() > 0
|
||||
|
||||
if is_instance_valid(_contents):
|
||||
_contents.add_theme_constant_override("separation", item_separation)
|
||||
_contents.visible = not collapsed
|
||||
|
||||
if is_instance_valid(_collapse_button):
|
||||
_collapse_button.visible = not collapsed
|
||||
|
||||
if is_instance_valid(_expand_button):
|
||||
_expand_button.visible = collapsed
|
||||
|
||||
if is_instance_valid(_title_label):
|
||||
_title_label.text = title
|
||||
|
||||
if is_instance_valid(_count_label):
|
||||
_count_label.text = "(%s)" % [_contents.get_child_count()]
|
||||
|
||||
|
||||
func clear():
|
||||
Utils.clear(_contents)
|
||||
_refresh()
|
||||
|
||||
|
||||
func add_item(new_item:Control):
|
||||
var item_wrapper = item_scene.instantiate()
|
||||
_contents.add_child(item_wrapper)
|
||||
item_wrapper.initialize(new_item)
|
||||
item_wrapper.move_requested.connect(func(from:int, to:int): move_requested.emit(from, to))
|
||||
item_wrapper.delete_requested.connect(func(idx:int): delete_requested.emit(idx) )
|
||||
item_wrapper.duplicate_requested.connect(func(idx:int): duplicate_requested.emit(idx) )
|
||||
_refresh()
|
||||
|
||||
|
||||
func _on_collapse_pressed():
|
||||
collapsed = true
|
||||
collapse_state_changed.emit(true)
|
||||
|
||||
|
||||
func _on_expand_pressed():
|
||||
collapsed = false
|
||||
collapse_state_changed.emit(false)
|
||||
|
1
addons/guide/editor/array_edit/array_edit.gd.uid
Normal file
1
addons/guide/editor/array_edit/array_edit.gd.uid
Normal file
@ -0,0 +1 @@
|
||||
uid://whm2ksw6nc4h
|
88
addons/guide/editor/array_edit/array_edit.tscn
Normal file
88
addons/guide/editor/array_edit/array_edit.tscn
Normal file
@ -0,0 +1,88 @@
|
||||
[gd_scene load_steps=5 format=3 uid="uid://cly0ff32fvpb2"]
|
||||
|
||||
[ext_resource type="Script" path="res://addons/guide/editor/array_edit/array_edit.gd" id="1_y3qyt"]
|
||||
[ext_resource type="PackedScene" uid="uid://cjabwsa4gmlpp" path="res://addons/guide/editor/array_edit/array_edit_item.tscn" id="2_n3ncl"]
|
||||
|
||||
[sub_resource type="Image" id="Image_efj5n"]
|
||||
data = {
|
||||
"data": PackedByteArray(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, 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, 94, 94, 127, 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, 94, 94, 127, 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, 94, 94, 127, 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, 255, 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, 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, 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, 94, 94, 54, 255, 94, 94, 57, 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, 93, 93, 44, 255, 255, 255, 0, 255, 97, 97, 42, 255, 97, 97, 42, 255, 255, 255, 0, 255, 96, 96, 45, 255, 93, 93, 44, 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, 94, 94, 234, 255, 95, 95, 43, 255, 255, 255, 0, 255, 255, 255, 0, 255, 96, 96, 45, 255, 93, 93, 235, 255, 94, 94, 234, 255, 95, 95, 43, 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, 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, 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_uapko"]
|
||||
image = SubResource("Image_efj5n")
|
||||
|
||||
[node name="Array" type="MarginContainer"]
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
script = ExtResource("1_y3qyt")
|
||||
item_scene = ExtResource("2_n3ncl")
|
||||
item_separation = 10
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="."]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="MarginContainer" type="MarginContainer" parent="VBoxContainer"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="Panel" type="Panel" parent="VBoxContainer/MarginContainer"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer/MarginContainer"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="CollapseButton" type="Button" parent="VBoxContainer/MarginContainer/HBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
custom_minimum_size = Vector2(32, 0)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 0
|
||||
tooltip_text = "Collapse"
|
||||
icon = SubResource("ImageTexture_uapko")
|
||||
|
||||
[node name="ExpandButton" type="Button" parent="VBoxContainer/MarginContainer/HBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
visible = false
|
||||
custom_minimum_size = Vector2(48, 0)
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 0
|
||||
tooltip_text = "Expand"
|
||||
icon = SubResource("ImageTexture_uapko")
|
||||
|
||||
[node name="AddButton" type="Button" parent="VBoxContainer/MarginContainer/HBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 0
|
||||
icon = SubResource("ImageTexture_uapko")
|
||||
|
||||
[node name="ClearButton" type="Button" parent="VBoxContainer/MarginContainer/HBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 0
|
||||
icon = SubResource("ImageTexture_uapko")
|
||||
|
||||
[node name="MarginContainer" type="MarginContainer" parent="VBoxContainer/MarginContainer/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer/MarginContainer/HBoxContainer/MarginContainer"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="TitleLabel" type="Label" parent="VBoxContainer/MarginContainer/HBoxContainer/MarginContainer/HBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
|
||||
[node name="CountLabel" type="Label" parent="VBoxContainer/MarginContainer/HBoxContainer/MarginContainer/HBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
text = "(0)"
|
||||
|
||||
[node name="Contents" type="VBoxContainer" parent="VBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
theme_override_constants/separation = 10
|
84
addons/guide/editor/array_edit/array_edit_item.gd
Normal file
84
addons/guide/editor/array_edit/array_edit_item.gd
Normal file
@ -0,0 +1,84 @@
|
||||
@tool
|
||||
extends Container
|
||||
const Utils = preload("../utils.gd")
|
||||
const Dragger = preload("dragger.gd")
|
||||
|
||||
signal move_requested(from:int, to:int)
|
||||
signal delete_requested(index:int)
|
||||
signal duplicate_requested(index:int)
|
||||
|
||||
@onready var _dragger:Dragger = %Dragger
|
||||
@onready var _content:Container = %Content
|
||||
@onready var _before_indicator:ColorRect = %BeforeIndicator
|
||||
@onready var _after_indicator:ColorRect = %AfterIndicator
|
||||
@onready var _popup_menu:PopupMenu = %PopupMenu
|
||||
|
||||
|
||||
const ID_DELETE = 2
|
||||
const ID_DUPLICATE = 3
|
||||
|
||||
func _ready():
|
||||
_dragger.icon = get_theme_icon("GuiSpinboxUpdown", "EditorIcons")
|
||||
_before_indicator.color = get_theme_color("box_selection_stroke_color", "Editor")
|
||||
_after_indicator.color = get_theme_color("box_selection_stroke_color", "Editor")
|
||||
_before_indicator.visible = false
|
||||
_after_indicator.visible = false
|
||||
_dragger._parent_array = get_parent()
|
||||
_dragger._index = get_index()
|
||||
_dragger.pressed.connect(_show_popup_menu)
|
||||
|
||||
_popup_menu.clear()
|
||||
_popup_menu.add_icon_item(get_theme_icon("Duplicate", "EditorIcons"), "Duplicate", ID_DUPLICATE)
|
||||
_popup_menu.add_icon_item(get_theme_icon("Remove", "EditorIcons"), "Delete", ID_DELETE)
|
||||
_popup_menu.id_pressed.connect(_on_popup_menu_id_pressed)
|
||||
|
||||
func initialize(content:Control):
|
||||
Utils.clear(_content)
|
||||
_content.add_child(content)
|
||||
|
||||
|
||||
func _can_drop_data(at_position:Vector2, data) -> bool:
|
||||
if data is Dictionary and data.has("parent_array") and data.parent_array == get_parent() and data.index != get_index():
|
||||
var height = size.y
|
||||
|
||||
var is_before = not _is_last_child() or (at_position.y < height/2.0)
|
||||
if is_before and data.index == get_index() - 1:
|
||||
# don't allow the previous child to be inserted at its
|
||||
# own position
|
||||
return false
|
||||
|
||||
_before_indicator.visible = is_before
|
||||
_after_indicator.visible = not is_before
|
||||
return true
|
||||
|
||||
return false
|
||||
|
||||
|
||||
func _drop_data(at_position, data):
|
||||
var height = size.y
|
||||
var is_before = not _is_last_child() or (at_position.y < height/2.0)
|
||||
var from = data.index
|
||||
var to = get_index() if is_before else get_index() + 1
|
||||
move_requested.emit(data.index, to)
|
||||
_before_indicator.visible = false
|
||||
_after_indicator.visible = false
|
||||
|
||||
func _is_last_child() -> bool:
|
||||
return get_index() == get_parent().get_child_count() - 1
|
||||
|
||||
|
||||
func _on_mouse_exited():
|
||||
_before_indicator.visible = false
|
||||
_after_indicator.visible = false
|
||||
|
||||
|
||||
func _show_popup_menu():
|
||||
_popup_menu.popup(Rect2(get_global_mouse_position(), Vector2.ZERO))
|
||||
|
||||
|
||||
func _on_popup_menu_id_pressed(id:int):
|
||||
match id:
|
||||
ID_DELETE:
|
||||
delete_requested.emit(get_index())
|
||||
ID_DUPLICATE:
|
||||
duplicate_requested.emit(get_index())
|
1
addons/guide/editor/array_edit/array_edit_item.gd.uid
Normal file
1
addons/guide/editor/array_edit/array_edit_item.gd.uid
Normal file
@ -0,0 +1 @@
|
||||
uid://dhqhut5enoj43
|
83
addons/guide/editor/array_edit/array_edit_item.tscn
Normal file
83
addons/guide/editor/array_edit/array_edit_item.tscn
Normal file
@ -0,0 +1,83 @@
|
||||
[gd_scene load_steps=5 format=3 uid="uid://cjabwsa4gmlpp"]
|
||||
|
||||
[ext_resource type="Script" path="res://addons/guide/editor/array_edit/array_edit_item.gd" id="1_ujx05"]
|
||||
[ext_resource type="Script" path="res://addons/guide/editor/array_edit/dragger.gd" id="2_53e2r"]
|
||||
|
||||
[sub_resource type="Image" id="Image_efj5n"]
|
||||
data = {
|
||||
"data": PackedByteArray(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, 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, 94, 94, 127, 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, 94, 94, 127, 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, 94, 94, 127, 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, 255, 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, 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, 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, 94, 94, 54, 255, 94, 94, 57, 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, 93, 93, 44, 255, 255, 255, 0, 255, 97, 97, 42, 255, 97, 97, 42, 255, 255, 255, 0, 255, 96, 96, 45, 255, 93, 93, 44, 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, 94, 94, 234, 255, 95, 95, 43, 255, 255, 255, 0, 255, 255, 255, 0, 255, 96, 96, 45, 255, 93, 93, 235, 255, 94, 94, 234, 255, 95, 95, 43, 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, 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, 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_uapko"]
|
||||
image = SubResource("Image_efj5n")
|
||||
|
||||
[node name="ArrayEditItem" type="MarginContainer"]
|
||||
anchors_preset = 10
|
||||
anchor_right = 1.0
|
||||
offset_bottom = 8.0
|
||||
grow_horizontal = 2
|
||||
script = ExtResource("1_ujx05")
|
||||
|
||||
[node name="MarginContainer" type="MarginContainer" parent="."]
|
||||
layout_mode = 2
|
||||
theme_override_constants/margin_top = 2
|
||||
theme_override_constants/margin_bottom = 2
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="MarginContainer"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="Dragger" type="Button" parent="MarginContainer/HBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 0
|
||||
tooltip_text = "Drag to reorder, click for options."
|
||||
focus_mode = 0
|
||||
mouse_filter = 1
|
||||
icon = SubResource("ImageTexture_uapko")
|
||||
script = ExtResource("2_53e2r")
|
||||
|
||||
[node name="Content" type="MarginContainer" parent="MarginContainer/HBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="."]
|
||||
layout_mode = 2
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="BeforeIndicator" type="ColorRect" parent="VBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
visible = false
|
||||
custom_minimum_size = Vector2(0, 2)
|
||||
layout_mode = 2
|
||||
mouse_filter = 2
|
||||
color = Color(0, 0, 0, 1)
|
||||
|
||||
[node name="Control" type="Control" parent="VBoxContainer"]
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 3
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="AfterIndicator" type="ColorRect" parent="VBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
visible = false
|
||||
custom_minimum_size = Vector2(0, 2)
|
||||
layout_mode = 2
|
||||
mouse_filter = 2
|
||||
color = Color(0, 0, 0, 1)
|
||||
|
||||
[node name="PopupMenu" type="PopupMenu" parent="."]
|
||||
unique_name_in_owner = true
|
||||
item_count = 2
|
||||
item_0/text = "Duplicate"
|
||||
item_0/icon = SubResource("ImageTexture_uapko")
|
||||
item_0/id = 3
|
||||
item_1/text = "Delete"
|
||||
item_1/icon = SubResource("ImageTexture_uapko")
|
||||
item_1/id = 2
|
||||
|
||||
[connection signal="mouse_exited" from="." to="." method="_on_mouse_exited"]
|
8
addons/guide/editor/array_edit/dragger.gd
Normal file
8
addons/guide/editor/array_edit/dragger.gd
Normal file
@ -0,0 +1,8 @@
|
||||
@tool
|
||||
extends Button
|
||||
|
||||
var _parent_array:Variant
|
||||
var _index:int
|
||||
|
||||
func _get_drag_data(at_position):
|
||||
return { "parent_array" : _parent_array, "index" : _index }
|
1
addons/guide/editor/array_edit/dragger.gd.uid
Normal file
1
addons/guide/editor/array_edit/dragger.gd.uid
Normal file
@ -0,0 +1 @@
|
||||
uid://d3cob8fbf0xk8
|
Reference in New Issue
Block a user