generated from SGDA/GodotExampleProject
feat: made sure the aspect ration fit a pixel art game and added useful addons
This commit is contained in:
299
addons/guide/editor/input_mapping_editor/input_mapping_editor.gd
Normal file
299
addons/guide/editor/input_mapping_editor/input_mapping_editor.gd
Normal file
@ -0,0 +1,299 @@
|
||||
@tool
|
||||
extends MarginContainer
|
||||
|
||||
const ArrayEdit = preload("../array_edit/array_edit.gd")
|
||||
const ClassScanner = preload("../class_scanner.gd")
|
||||
const Utils = preload("../utils.gd")
|
||||
|
||||
@export var modifier_slot_scene:PackedScene
|
||||
@export var trigger_slot_scene:PackedScene
|
||||
@export var binding_dialog_scene:PackedScene
|
||||
|
||||
@onready var _edit_input_mapping_button:Button = %EditInputMappingButton
|
||||
@onready var _input_display = %InputDisplay
|
||||
@onready var _edit_input_button:Button = %EditInputButton
|
||||
@onready var _clear_input_button:Button = %ClearInputButton
|
||||
|
||||
@onready var _modifiers:ArrayEdit = %Modifiers
|
||||
@onready var _add_modifier_popup:PopupMenu = %AddModifierPopup
|
||||
|
||||
@onready var _triggers:ArrayEdit = %Triggers
|
||||
@onready var _add_trigger_popup:PopupMenu = %AddTriggerPopup
|
||||
|
||||
var _plugin:EditorPlugin
|
||||
var _scanner:ClassScanner
|
||||
var _undo_redo:EditorUndoRedoManager
|
||||
|
||||
var _mapping:GUIDEInputMapping
|
||||
|
||||
func _ready():
|
||||
_edit_input_button.icon = get_theme_icon("Edit", "EditorIcons")
|
||||
_clear_input_button.icon = get_theme_icon("Remove", "EditorIcons")
|
||||
_edit_input_mapping_button.icon = get_theme_icon("Tools", "EditorIcons")
|
||||
|
||||
_modifiers.add_requested.connect(_on_modifiers_add_requested)
|
||||
_modifiers.delete_requested.connect(_on_modifier_delete_requested)
|
||||
_modifiers.duplicate_requested.connect(_on_modifier_duplicate_requested)
|
||||
_modifiers.move_requested.connect(_on_modifier_move_requested)
|
||||
_modifiers.clear_requested.connect(_on_modifiers_clear_requested)
|
||||
_modifiers.collapse_state_changed.connect(_on_modifiers_collapse_state_changed)
|
||||
|
||||
_triggers.add_requested.connect(_on_triggers_add_requested)
|
||||
_triggers.delete_requested.connect(_on_trigger_delete_requested)
|
||||
_triggers.duplicate_requested.connect(_on_trigger_duplicate_requested)
|
||||
_triggers.move_requested.connect(_on_trigger_move_requested)
|
||||
_triggers.clear_requested.connect(_on_triggers_clear_requested)
|
||||
_triggers.collapse_state_changed.connect(_on_triggers_collapse_state_changed)
|
||||
|
||||
|
||||
func initialize(plugin:EditorPlugin, scanner:ClassScanner) -> void:
|
||||
_plugin = plugin
|
||||
_scanner = scanner
|
||||
_undo_redo = plugin.get_undo_redo()
|
||||
_input_display.clicked.connect(_on_input_display_clicked)
|
||||
|
||||
|
||||
func edit(mapping:GUIDEInputMapping) -> void:
|
||||
assert(_mapping == null)
|
||||
_mapping = mapping
|
||||
_mapping.changed.connect(_update)
|
||||
_update()
|
||||
|
||||
|
||||
func _update():
|
||||
_modifiers.clear()
|
||||
_triggers.clear()
|
||||
|
||||
_input_display.input = _mapping.input
|
||||
for i in _mapping.modifiers.size():
|
||||
var modifier_slot = modifier_slot_scene.instantiate()
|
||||
_modifiers.add_item(modifier_slot)
|
||||
|
||||
modifier_slot.modifier = _mapping.modifiers[i]
|
||||
modifier_slot.changed.connect(_on_modifier_changed.bind(i, modifier_slot))
|
||||
|
||||
for i in _mapping.triggers.size():
|
||||
var trigger_slot = trigger_slot_scene.instantiate()
|
||||
_triggers.add_item(trigger_slot)
|
||||
|
||||
trigger_slot.trigger = _mapping.triggers[i]
|
||||
trigger_slot.changed.connect(_on_trigger_changed.bind(i, trigger_slot))
|
||||
|
||||
_modifiers.collapsed = _mapping.get_meta("_guide_modifiers_collapsed", false)
|
||||
_triggers.collapsed = _mapping.get_meta("_guide_triggers_collapsed", false)
|
||||
|
||||
|
||||
func _on_modifiers_add_requested():
|
||||
_fill_popup(_add_modifier_popup, "GUIDEModifier")
|
||||
_add_modifier_popup.popup(Rect2(get_global_mouse_position(), Vector2.ZERO))
|
||||
|
||||
|
||||
func _on_triggers_add_requested():
|
||||
_fill_popup(_add_trigger_popup, "GUIDETrigger")
|
||||
_add_trigger_popup.popup(Rect2(get_global_mouse_position(), Vector2.ZERO))
|
||||
|
||||
|
||||
func _fill_popup(popup:PopupMenu, base_clazz:StringName):
|
||||
popup.clear(true)
|
||||
|
||||
var inheritors := _scanner.find_inheritors(base_clazz)
|
||||
for type in inheritors.keys():
|
||||
var class_script:Script = inheritors[type]
|
||||
var dummy = class_script.new()
|
||||
popup.add_item(dummy._editor_name())
|
||||
popup.set_item_tooltip(popup.item_count -1, dummy._editor_description())
|
||||
popup.set_item_metadata(popup.item_count - 1, class_script)
|
||||
|
||||
func _on_input_display_clicked():
|
||||
if is_instance_valid(_mapping.input):
|
||||
EditorInterface.edit_resource(_mapping.input)
|
||||
|
||||
|
||||
func _on_input_changed(input:GUIDEInput):
|
||||
_undo_redo.create_action("Change input")
|
||||
|
||||
_undo_redo.add_do_property(_mapping, "input", input)
|
||||
_undo_redo.add_undo_property(_mapping, "input", _mapping.input)
|
||||
|
||||
_undo_redo.commit_action()
|
||||
|
||||
if is_instance_valid(input):
|
||||
EditorInterface.edit_resource(input)
|
||||
|
||||
|
||||
func _on_edit_input_button_pressed():
|
||||
var dialog:Window = binding_dialog_scene.instantiate()
|
||||
EditorInterface.popup_dialog_centered(dialog)
|
||||
dialog.initialize(_scanner)
|
||||
dialog.input_selected.connect(_on_input_changed)
|
||||
|
||||
|
||||
func _on_clear_input_button_pressed():
|
||||
_undo_redo.create_action("Delete bound input")
|
||||
|
||||
_undo_redo.add_do_property(_mapping, "input", null)
|
||||
_undo_redo.add_undo_property(_mapping, "triggers", _mapping.input)
|
||||
|
||||
_undo_redo.commit_action()
|
||||
|
||||
|
||||
func _on_add_modifier_popup_index_pressed(index:int) -> void:
|
||||
var script = _add_modifier_popup.get_item_metadata(index)
|
||||
var new_modifier = script.new()
|
||||
|
||||
_undo_redo.create_action("Add " + new_modifier._editor_name() + " modifier")
|
||||
var modifiers = _mapping.modifiers.duplicate()
|
||||
modifiers.append(new_modifier)
|
||||
|
||||
_undo_redo.add_do_property(_mapping, "modifiers", modifiers)
|
||||
_undo_redo.add_undo_property(_mapping, "modifiers", _mapping.modifiers)
|
||||
|
||||
_undo_redo.commit_action()
|
||||
|
||||
|
||||
func _on_add_trigger_popup_index_pressed(index):
|
||||
var script = _add_trigger_popup.get_item_metadata(index)
|
||||
var new_trigger = script.new()
|
||||
|
||||
_undo_redo.create_action("Add " + new_trigger._editor_name() + " trigger")
|
||||
var triggers = _mapping.triggers.duplicate()
|
||||
triggers.append(new_trigger)
|
||||
|
||||
_undo_redo.add_do_property(_mapping, "triggers", triggers)
|
||||
_undo_redo.add_undo_property(_mapping, "triggers", _mapping.triggers)
|
||||
|
||||
_undo_redo.commit_action()
|
||||
|
||||
|
||||
func _on_modifier_changed(index:int, slot) -> void:
|
||||
var new_modifier = slot.modifier
|
||||
|
||||
_undo_redo.create_action("Replace modifier")
|
||||
var modifiers = _mapping.modifiers.duplicate()
|
||||
modifiers[index] = new_modifier
|
||||
|
||||
_undo_redo.add_do_property(_mapping, "modifiers", modifiers)
|
||||
_undo_redo.add_undo_property(_mapping, "modifiers", _mapping.modifiers)
|
||||
|
||||
_undo_redo.commit_action()
|
||||
|
||||
|
||||
func _on_trigger_changed(index:int, slot) -> void:
|
||||
var new_trigger = slot.trigger
|
||||
|
||||
_undo_redo.create_action("Replace trigger")
|
||||
var triggers = _mapping.triggers.duplicate()
|
||||
triggers[index] = new_trigger
|
||||
|
||||
_undo_redo.add_do_property(_mapping, "triggers", triggers)
|
||||
_undo_redo.add_undo_property(_mapping, "triggers", _mapping.triggers)
|
||||
|
||||
_undo_redo.commit_action()
|
||||
|
||||
|
||||
func _on_modifier_move_requested(from:int, to:int) -> void:
|
||||
_undo_redo.create_action("Move modifier")
|
||||
var modifiers = _mapping.modifiers.duplicate()
|
||||
var modifier = modifiers[from]
|
||||
modifiers.remove_at(from)
|
||||
if from < to:
|
||||
to -= 1
|
||||
modifiers.insert(to, modifier)
|
||||
|
||||
_undo_redo.add_do_property(_mapping, "modifiers", modifiers)
|
||||
_undo_redo.add_undo_property(_mapping, "modifiers", _mapping.modifiers)
|
||||
|
||||
_undo_redo.commit_action()
|
||||
|
||||
|
||||
func _on_trigger_move_requested(from:int, to:int) -> void:
|
||||
_undo_redo.create_action("Move trigger")
|
||||
var triggers = _mapping.triggers.duplicate()
|
||||
var trigger = triggers[from]
|
||||
triggers.remove_at(from)
|
||||
if from < to:
|
||||
to -= 1
|
||||
triggers.insert(to, trigger)
|
||||
|
||||
_undo_redo.add_do_property(_mapping, "triggers", triggers)
|
||||
_undo_redo.add_undo_property(_mapping, "triggers", _mapping.triggers)
|
||||
|
||||
_undo_redo.commit_action()
|
||||
|
||||
func _on_modifier_duplicate_requested(index:int) -> void:
|
||||
_undo_redo.create_action("Duplicate modifier")
|
||||
var modifiers = _mapping.modifiers.duplicate()
|
||||
var copy = Utils.duplicate_if_inline(modifiers[index])
|
||||
modifiers.insert(index+1, copy)
|
||||
|
||||
_undo_redo.add_do_property(_mapping, "modifiers", modifiers)
|
||||
_undo_redo.add_undo_property(_mapping, "modifiers", _mapping.modifiers)
|
||||
|
||||
_undo_redo.commit_action()
|
||||
|
||||
func _on_trigger_duplicate_requested(index:int) -> void:
|
||||
_undo_redo.create_action("Duplicate trigger")
|
||||
var triggers = _mapping.triggers.duplicate()
|
||||
var copy = Utils.duplicate_if_inline(triggers[index])
|
||||
triggers.insert(index+1, copy)
|
||||
|
||||
_undo_redo.add_do_property(_mapping, "triggers", triggers)
|
||||
_undo_redo.add_undo_property(_mapping, "triggers", _mapping.triggers)
|
||||
|
||||
_undo_redo.commit_action()
|
||||
|
||||
|
||||
|
||||
func _on_modifier_delete_requested(index:int) -> void:
|
||||
_undo_redo.create_action("Delete modifier")
|
||||
var modifiers = _mapping.modifiers.duplicate()
|
||||
modifiers.remove_at(index)
|
||||
|
||||
_undo_redo.add_do_property(_mapping, "modifiers", modifiers)
|
||||
_undo_redo.add_undo_property(_mapping, "modifiers", _mapping.modifiers)
|
||||
|
||||
_undo_redo.commit_action()
|
||||
|
||||
|
||||
func _on_trigger_delete_requested(index:int) -> void:
|
||||
_undo_redo.create_action("Delete trigger")
|
||||
var triggers = _mapping.triggers.duplicate()
|
||||
triggers.remove_at(index)
|
||||
|
||||
_undo_redo.add_do_property(_mapping, "triggers", triggers)
|
||||
_undo_redo.add_undo_property(_mapping, "triggers", _mapping.triggers)
|
||||
|
||||
_undo_redo.commit_action()
|
||||
|
||||
|
||||
func _on_modifiers_clear_requested() -> void:
|
||||
_undo_redo.create_action("Clear modifiers")
|
||||
# if this is inlined into the do_property, then it doesn't work
|
||||
# so lets keep it a local variable
|
||||
var value:Array[GUIDEModifier] = []
|
||||
_undo_redo.add_do_property(_mapping, "modifiers", value)
|
||||
_undo_redo.add_undo_property(_mapping, "modifiers", _mapping.modifiers)
|
||||
|
||||
_undo_redo.commit_action()
|
||||
|
||||
|
||||
func _on_triggers_clear_requested() -> void:
|
||||
_undo_redo.create_action("Clear triggers")
|
||||
# if this is inlined into the do_property, then it doesn't work
|
||||
# so lets keep it a local variable
|
||||
var value:Array[GUIDETrigger] = []
|
||||
_undo_redo.add_do_property(_mapping, "triggers", value)
|
||||
_undo_redo.add_undo_property(_mapping, "triggers", _mapping.triggers)
|
||||
|
||||
_undo_redo.commit_action()
|
||||
|
||||
|
||||
func _on_modifiers_collapse_state_changed(new_state:bool):
|
||||
_mapping.set_meta("_guide_modifiers_collapsed", new_state)
|
||||
|
||||
func _on_triggers_collapse_state_changed(new_state:bool):
|
||||
_mapping.set_meta("_guide_triggers_collapsed", new_state)
|
||||
|
||||
|
||||
func _on_edit_input_mapping_button_pressed():
|
||||
EditorInterface.edit_resource(_mapping)
|
@ -0,0 +1 @@
|
||||
uid://dsw33iehbw8q6
|
@ -0,0 +1,140 @@
|
||||
[gd_scene load_steps=9 format=3 uid="uid://c323mdijdhktg"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://dsv7s6tfmnsrs" path="res://addons/guide/editor/input_display/input_display.tscn" id="1_pg8n3"]
|
||||
[ext_resource type="Script" path="res://addons/guide/editor/input_mapping_editor/input_mapping_editor.gd" id="1_xsluc"]
|
||||
[ext_resource type="PackedScene" uid="uid://ck5a30syo6bpo" path="res://addons/guide/editor/modifier_slot/modifier_slot.tscn" id="2_uhbrq"]
|
||||
[ext_resource type="PackedScene" uid="uid://tk30wnstb0ku" path="res://addons/guide/editor/trigger_slot/trigger_slot.tscn" id="3_e0jys"]
|
||||
[ext_resource type="PackedScene" uid="uid://dic27bm4pfw3q" path="res://addons/guide/editor/binding_dialog/binding_dialog.tscn" id="4_oepf3"]
|
||||
[ext_resource type="PackedScene" uid="uid://cly0ff32fvpb2" path="res://addons/guide/editor/array_edit/array_edit.tscn" id="6_jekhk"]
|
||||
|
||||
[sub_resource type="Image" id="Image_m1w1j"]
|
||||
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_y0eyy"]
|
||||
image = SubResource("Image_m1w1j")
|
||||
|
||||
[node name="InputMappingEditor" type="MarginContainer"]
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
size_flags_vertical = 0
|
||||
script = ExtResource("1_xsluc")
|
||||
modifier_slot_scene = ExtResource("2_uhbrq")
|
||||
trigger_slot_scene = ExtResource("3_e0jys")
|
||||
binding_dialog_scene = ExtResource("4_oepf3")
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="."]
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 0
|
||||
theme_override_constants/separation = 8
|
||||
|
||||
[node name="MarginContainer" type="MarginContainer" parent="HBoxContainer"]
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 0
|
||||
|
||||
[node name="Panel" type="Panel" parent="HBoxContainer/MarginContainer"]
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
|
||||
[node name="EditInputMappingButton" type="Button" parent="HBoxContainer/MarginContainer"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
tooltip_text = "Open input mapping in inspector"
|
||||
icon = SubResource("ImageTexture_y0eyy")
|
||||
flat = true
|
||||
|
||||
[node name="MarginContainer1" type="MarginContainer" parent="HBoxContainer"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
|
||||
[node name="Panel" type="Panel" parent="HBoxContainer/MarginContainer1"]
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="HBoxContainer/MarginContainer1"]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="InputDisplay" parent="HBoxContainer/MarginContainer1/HBoxContainer" instance=ExtResource("1_pg8n3")]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
scroll_active = false
|
||||
|
||||
[node name="EditInputButton" type="Button" parent="HBoxContainer/MarginContainer1/HBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 0
|
||||
tooltip_text = "Edit bound input..."
|
||||
icon = SubResource("ImageTexture_y0eyy")
|
||||
flat = true
|
||||
|
||||
[node name="ClearInputButton" type="Button" parent="HBoxContainer/MarginContainer1/HBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
size_flags_vertical = 0
|
||||
tooltip_text = "Delete bound input"
|
||||
icon = SubResource("ImageTexture_y0eyy")
|
||||
flat = true
|
||||
|
||||
[node name="MarginContainer2" type="MarginContainer" parent="HBoxContainer"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
size_flags_stretch_ratio = 2.0
|
||||
|
||||
[node name="Panel" type="Panel" parent="HBoxContainer/MarginContainer2"]
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="HBoxContainer/MarginContainer2"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 0
|
||||
size_flags_stretch_ratio = 2.0
|
||||
|
||||
[node name="Modifiers" parent="HBoxContainer/MarginContainer2/VBoxContainer" instance=ExtResource("6_jekhk")]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
title = "Modifiers"
|
||||
add_tooltip = "Add modifier..."
|
||||
clear_tooltip = "Clear modifiers"
|
||||
|
||||
[node name="AddModifierPopup" type="PopupMenu" parent="HBoxContainer/MarginContainer2/VBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
|
||||
[node name="MarginContainer3" type="MarginContainer" parent="HBoxContainer"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
size_flags_stretch_ratio = 2.0
|
||||
|
||||
[node name="Panel" type="Panel" parent="HBoxContainer/MarginContainer3"]
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
|
||||
[node name="VBoxContainer2" type="VBoxContainer" parent="HBoxContainer/MarginContainer3"]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 0
|
||||
size_flags_stretch_ratio = 2.0
|
||||
|
||||
[node name="Triggers" parent="HBoxContainer/MarginContainer3/VBoxContainer2" instance=ExtResource("6_jekhk")]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
title = "Triggers"
|
||||
add_tooltip = "Add trigger..."
|
||||
clear_tooltip = "Clear triggers"
|
||||
|
||||
[node name="AddTriggerPopup" type="PopupMenu" parent="HBoxContainer/MarginContainer3/VBoxContainer2"]
|
||||
unique_name_in_owner = true
|
||||
|
||||
[connection signal="pressed" from="HBoxContainer/MarginContainer/EditInputMappingButton" to="." method="_on_edit_input_mapping_button_pressed"]
|
||||
[connection signal="pressed" from="HBoxContainer/MarginContainer1/HBoxContainer/EditInputButton" to="." method="_on_edit_input_button_pressed"]
|
||||
[connection signal="pressed" from="HBoxContainer/MarginContainer1/HBoxContainer/ClearInputButton" to="." method="_on_clear_input_button_pressed"]
|
||||
[connection signal="index_pressed" from="HBoxContainer/MarginContainer2/VBoxContainer/AddModifierPopup" to="." method="_on_add_modifier_popup_index_pressed"]
|
||||
[connection signal="index_pressed" from="HBoxContainer/MarginContainer3/VBoxContainer2/AddTriggerPopup" to="." method="_on_add_trigger_popup_index_pressed"]
|
Reference in New Issue
Block a user