mirror of
https://gitlab.com/MaddoScientisto/cirnogodot.git
synced 2026-07-05 21:11:16 +00:00
Added scene palette addon
This commit is contained in:
parent
616062c62d
commit
687d3f7803
43 changed files with 1471 additions and 0 deletions
|
|
@ -0,0 +1,9 @@
|
|||
@tool
|
||||
extends Button
|
||||
|
||||
|
||||
func _on_mouse_entered():
|
||||
scale = Vector2(1.05, 1.05)
|
||||
|
||||
func _on_mouse_exited():
|
||||
scale = Vector2.ONE
|
||||
|
|
@ -0,0 +1 @@
|
|||
uid://d3wtnpc6vtyba
|
||||
|
|
@ -0,0 +1,53 @@
|
|||
@tool
|
||||
extends HBoxContainer
|
||||
class_name PalettePluginFavoriteButton
|
||||
@onready var button:Button = %Button
|
||||
@onready var delete_button = %DeleteButton
|
||||
@onready var color_picker_button = %ColorPickerButton
|
||||
const PALETTE_NAME_MAX_LEN = 17
|
||||
|
||||
var directory:String:
|
||||
set(value):
|
||||
directory = value
|
||||
button.text = _create_button_label(directory)
|
||||
|
||||
signal favorite_selected(dir)
|
||||
signal favorite_color_changed(dir, color)
|
||||
signal favorite_removed(dir)
|
||||
|
||||
func _create_button_label(directory) -> String:
|
||||
var dir_name:String = directory.split('/')[-1]
|
||||
# remove -,_ so that the names look neater
|
||||
var btn_name:String = dir_name.replace('-', ' ').replace('_', ' ')
|
||||
button.tooltip_text = "Open palette for " + btn_name
|
||||
|
||||
# If button names are too long, the behavior of the controls will wrap in
|
||||
# a weird way when the panel width is resized in the editor.
|
||||
# There's probably a better way to deal with this, but this works for now.
|
||||
if len(btn_name) > PALETTE_NAME_MAX_LEN:
|
||||
btn_name = btn_name.left(PALETTE_NAME_MAX_LEN)
|
||||
return btn_name
|
||||
|
||||
|
||||
func _on_favorite_button_pressed():
|
||||
favorite_selected.emit(directory)
|
||||
|
||||
func _on_delete_button_pressed():
|
||||
favorite_removed.emit(directory)
|
||||
queue_free()
|
||||
|
||||
func set_settings_visibility(is_visible:bool):
|
||||
delete_button.visible = is_visible
|
||||
color_picker_button.visible = is_visible
|
||||
|
||||
func _on_color_picker_button_color_changed(color):
|
||||
set_color(color)
|
||||
favorite_color_changed.emit(directory, color)
|
||||
#delete_button.add_theme_stylebox_override('normal', stylebox)
|
||||
|
||||
func set_color(color:Color):
|
||||
var stylebox:StyleBoxFlat = StyleBoxFlat.new()
|
||||
stylebox.bg_color = color
|
||||
stylebox.set_content_margin_all(7)
|
||||
button.add_theme_stylebox_override('normal', stylebox)
|
||||
button.add_theme_stylebox_override('hover', stylebox)
|
||||
|
|
@ -0,0 +1 @@
|
|||
uid://drl5v6d85cn8i
|
||||
|
|
@ -0,0 +1,67 @@
|
|||
[gd_scene load_steps=5 format=3 uid="uid://wfk2vnuru8d"]
|
||||
|
||||
[ext_resource type="Script" path="res://addons/scene_palette/components/favorite_button/FavoriteButton.gd" id="1_vdv7t"]
|
||||
[ext_resource type="Script" path="res://addons/scene_palette/components/favorite_button/Button.gd" id="2_8ifhe"]
|
||||
[ext_resource type="Texture2D" uid="uid://ckxydxkbv6ecc" path="res://addons/scene_palette/icons/palette.png" id="2_hpqcp"]
|
||||
[ext_resource type="Texture2D" uid="uid://ittulgc4utna" path="res://addons/scene_palette/icons/eye_dropper.png" id="4_0krmm"]
|
||||
|
||||
[node name="FavoriteButton" type="HBoxContainer"]
|
||||
offset_right = 40.0
|
||||
offset_bottom = 40.0
|
||||
size_flags_horizontal = 0
|
||||
theme_override_constants/separation = 0
|
||||
script = ExtResource("1_vdv7t")
|
||||
|
||||
[node name="Button" type="Button" parent="."]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 0
|
||||
theme_override_font_sizes/font_size = 14
|
||||
text = "text"
|
||||
icon = ExtResource("2_hpqcp")
|
||||
script = ExtResource("2_8ifhe")
|
||||
|
||||
[node name="VBoxContainer" type="HBoxContainer" parent="."]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 2
|
||||
theme_override_constants/separation = -1
|
||||
|
||||
[node name="ColorPickerButton" type="ColorPickerButton" parent="VBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 0
|
||||
size_flags_vertical = 0
|
||||
tooltip_text = "change color"
|
||||
icon = ExtResource("4_0krmm")
|
||||
edit_alpha = false
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="VBoxContainer/ColorPickerButton"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 8
|
||||
anchor_left = 0.5
|
||||
anchor_top = 0.5
|
||||
anchor_right = 0.5
|
||||
anchor_bottom = 0.5
|
||||
offset_left = -5.0
|
||||
offset_top = -6.0
|
||||
offset_right = 5.0
|
||||
offset_bottom = 6.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
texture = ExtResource("4_0krmm")
|
||||
stretch_mode = 2
|
||||
|
||||
[node name="DeleteButton" type="Button" parent="VBoxContainer"]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 0
|
||||
size_flags_vertical = 0
|
||||
tooltip_text = "Remove from favorites."
|
||||
text = " x "
|
||||
|
||||
[connection signal="mouse_entered" from="Button" to="Button" method="_on_mouse_entered"]
|
||||
[connection signal="mouse_exited" from="Button" to="Button" method="_on_mouse_exited"]
|
||||
[connection signal="pressed" from="Button" to="." method="_on_favorite_button_pressed"]
|
||||
[connection signal="color_changed" from="VBoxContainer/ColorPickerButton" to="." method="_on_color_picker_button_color_changed"]
|
||||
[connection signal="pressed" from="VBoxContainer/DeleteButton" to="." method="_on_delete_button_pressed"]
|
||||
Loading…
Add table
Add a link
Reference in a new issue