1
0
Fork 0
mirror of https://github.com/Orama-Interactive/Pixelorama.git synced 2025-01-30 23:19:49 +00:00

Compare commits

...

9 commits

Author SHA1 Message Date
Variable 04d291c327
Merge d846ce1cec into 5ec316a50f 2024-12-13 17:03:23 +05:00
Variable d846ce1cec Merge branch 'Tile-Imps' of github.com:Variable-ind/Pixelorama into Tile-Imps 2024-12-13 17:03:08 +05:00
Variable 3224297572 Implemented requested changes 2024-12-13 17:02:18 +05:00
Emmanouil Papadeas 5ec316a50f Some minor UI improvements in the text tool
The text tool's caret is now blinking, and the width of the border should now change depending on the zoom value
2024-12-12 21:36:56 +02:00
Emmanouil Papadeas a7a76ff9f0 Enable always on top for more child dialogs of other dialogs
Continuation of c72a1f4b90
2024-12-10 14:36:56 +02:00
Variable 1a04934232
Merge branch 'Orama-Interactive:master' into Tile-Imps 2024-12-08 17:22:41 +05:00
Variable 16dcffd038 Improved UI for tilemap editor 2024-12-07 17:38:14 +05:00
Variable 4df163568e Merge branch 'master' of github.com:Variable-ind/Pixelorama into Tile-Imps 2024-12-06 21:18:58 +05:00
Variable f6a2aa9253 Added a background to swatches 2024-12-06 21:02:11 +05:00
11 changed files with 189 additions and 35 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 204 B

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bqr3n3tm8b6w2"
path="res://.godot/imported/place_tiles_disabled.png-f43e25b0863e3eedf3c6fc7ef902127f.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/graphics/tileset/place_tiles_disabled.png"
dest_files=["res://.godot/imported/place_tiles_disabled.png-f43e25b0863e3eedf3c6fc7ef902127f.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
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/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

Binary file not shown.

After

Width:  |  Height:  |  Size: 185 B

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dga8nirhhgyc4"
path="res://.godot/imported/place_tiles_enabled.png-845e4dd5c3bbd38cc7bf5ee82ed05667.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/graphics/tileset/place_tiles_enabled.png"
dest_files=["res://.godot/imported/place_tiles_enabled.png-845e4dd5c3bbd38cc7bf5ee82ed05667.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
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/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1

View file

@ -1473,6 +1473,7 @@ text = "Pixelorama must be restarted for changes to take effect."
mode = 1
title = "Open File(s)"
size = Vector2i(560, 400)
always_on_top = true
ok_button_text = "Open"
file_mode = 1
access = 2
@ -1484,6 +1485,7 @@ transient = true
[node name="EnableExtensionConfirmation" type="ConfirmationDialog" parent="."]
unique_name_in_owner = true
always_on_top = true
dialog_text = "Are you sure you want to enable this extension? Make sure to only enable extensions from sources that you trust."
dialog_autowrap = true
@ -1491,11 +1493,13 @@ dialog_autowrap = true
unique_name_in_owner = true
position = Vector2i(0, 36)
size = Vector2i(400, 100)
always_on_top = true
ok_button_text = "Delete Permanently"
dialog_text = "Are you sure you want to delete this extension?"
dialog_autowrap = true
[node name="ResetOptionsConfirmation" type="ConfirmationDialog" parent="."]
always_on_top = true
dialog_text = "Are you sure you want to reset the selected options? There will be no way to undo this."
[connection signal="about_to_popup" from="." to="." method="_on_PreferencesDialog_about_to_show"]

View file

@ -139,7 +139,7 @@ func text_to_pixels() -> void:
var text := text_edit.text
var color := tool_slot.color
var font_ascent := font.get_ascent(text_size)
var pos := Vector2(1, font_ascent + text_edit.get_theme_constant(&"line_spacing"))
var pos := Vector2(0, font_ascent + text_edit.get_theme_constant(&"line_spacing"))
pos += text_edit.position
font.draw_multiline_string(ci_rid, pos, text, horizontal_alignment, -1, text_size, -1, color)

View file

@ -16,6 +16,7 @@ resource_name = "Layout"
script = ExtResource("3")
root = SubResource("1")
hidden_tabs = {}
windows = {}
save_on_change = false
[node name="ManageLayouts" type="AcceptDialog"]
@ -110,6 +111,7 @@ disabled = true
text = "Delete"
[node name="LayoutSettings" type="ConfirmationDialog" parent="."]
always_on_top = true
[node name="VBoxContainer" type="VBoxContainer" parent="LayoutSettings"]
offset_right = 40.0
@ -131,12 +133,12 @@ text = "Copy from"
[node name="LayoutFrom" type="OptionButton" parent="LayoutSettings/VBoxContainer/HBoxContainer"]
unique_name_in_owner = true
layout_mode = 2
item_count = 1
selected = 0
item_count = 1
popup/item_0/text = "Current layout"
popup/item_0/id = 0
[node name="DeleteConfirmation" type="ConfirmationDialog" parent="."]
always_on_top = true
dialog_text = "Are you sure you want to delete this layout?"
[connection signal="about_to_popup" from="." to="." method="_on_ManageLayouts_about_to_show"]

View file

@ -12,6 +12,7 @@ size = Vector2i(760, 470)
visible = false
wrap_controls = true
exclusive = true
always_on_top = true
script = ExtResource("1_pwcwi")
[node name="TabContainer" type="TabContainer" parent="."]
@ -24,9 +25,11 @@ offset_left = 7.0
offset_top = 8.0
offset_right = -7.0
offset_bottom = -8.0
current_tab = 0
[node name="Store" type="MarginContainer" parent="TabContainer"]
layout_mode = 2
metadata/_tab_index = 0
[node name="StoreMainContainer" type="HSplitContainer" parent="TabContainer/Store"]
layout_mode = 2
@ -68,6 +71,7 @@ size_flags_horizontal = 3
[node name="Options" type="MarginContainer" parent="TabContainer"]
visible = false
layout_mode = 2
metadata/_tab_index = 1
[node name="ScrollContainer" type="ScrollContainer" parent="TabContainer/Options"]
layout_mode = 2
@ -153,6 +157,7 @@ unique_name_in_owner = true
position = Vector2i(0, 36)
size = Vector2i(511, 326)
unresizable = true
always_on_top = true
popup_window = true
[node name="Content" type="VBoxContainer" parent="Error"]
@ -200,6 +205,7 @@ autowrap_mode = 3
unique_name_in_owner = true
position = Vector2i(0, 36)
size = Vector2i(357, 110)
always_on_top = true
popup_window = true
[node name="Content" type="VBoxContainer" parent="ErrorCustom"]

View file

@ -5,15 +5,18 @@ var font: Font:
set(value):
font = value
add_theme_font_override(&"font", font)
var _border_node := Control.new()
func _ready() -> void:
Global.camera.zoom_changed.connect(func(): _border_node.queue_redraw())
_border_node.draw.connect(_on_border_redraw)
_border_node.set_anchors_preset(Control.PRESET_FULL_RECT)
_border_node.mouse_filter = Control.MOUSE_FILTER_IGNORE
add_child(_border_node)
caret_blink = true
var stylebox := StyleBoxFlat.new()
stylebox.draw_center = false
stylebox.border_width_left = 1
stylebox.border_width_top = 1
stylebox.border_width_right = 1
stylebox.border_width_bottom = 1
add_theme_stylebox_override(&"normal", stylebox)
add_theme_stylebox_override(&"focus", stylebox)
add_theme_constant_override(&"line_spacing", 0)
@ -44,3 +47,9 @@ func _on_text_changed() -> void:
var string_size := font.get_string_size(max_line, HORIZONTAL_ALIGNMENT_LEFT, -1, font_size)
size.x = font_size + string_size.x
size.y = (get_line_count() + 1) * font.get_height(font_size)
_border_node.queue_redraw()
func _on_border_redraw() -> void:
var border_width := (1.0 / Global.camera.zoom.x) * 2.0 + 1.0
_border_node.draw_rect(_border_node.get_rect(), Color.WHITE, false, border_width)

View file

@ -47,9 +47,10 @@ var button_size := 36:
button.custom_minimum_size = Vector2(button_size, button_size)
button.size = Vector2(button_size, button_size)
@onready var place_tiles: CheckBox = $VBoxContainer/PlaceTiles
@onready var transform_buttons_container: HFlowContainer = $VBoxContainer/TransformButtonsContainer
@onready var place_tiles: Button = %PlaceTiles
@onready var transform_buttons_container: HFlowContainer = %TransformButtonsContainer
@onready var tile_button_container: HFlowContainer = %TileButtonContainer
@onready var mode_buttons_container: HFlowContainer = %ModeButtonsContainer
func _ready() -> void:
@ -57,6 +58,7 @@ func _ready() -> void:
Global.cel_switched.connect(_on_cel_switched)
for child: Button in transform_buttons_container.get_children():
Global.disable_button(child, true)
update_tip()
func _gui_input(event: InputEvent) -> void:
@ -80,6 +82,15 @@ func set_tileset(tileset: TileSetCustom) -> void:
current_tileset.updated.connect(_update_tileset)
func update_tip():
var tip = %Tip
tip.get_parent().visible = true
if placing_tiles:
tip.text = "Select a tile to place it on the canvas."
else:
tip.text = "Modify tiles on the canvas."
func _on_cel_switched() -> void:
if Global.current_project.get_current_cel() is not CelTileMap:
set_tileset(null)
@ -157,8 +168,15 @@ func _clear_tile_buttons() -> void:
func _on_place_tiles_toggled(toggled_on: bool) -> void:
placing_tiles = toggled_on
transform_buttons_container.visible = placing_tiles
mode_buttons_container.visible = !placing_tiles
for child: Button in transform_buttons_container.get_children():
Global.disable_button(child, not toggled_on)
if toggled_on:
Global.change_button_texturerect(place_tiles.get_child(0), "place_tiles_enabled.png")
else:
Global.change_button_texturerect(place_tiles.get_child(0), "place_tiles_disabled.png")
update_tip()
func _on_manual_toggled(toggled_on: bool) -> void:

View file

@ -1,6 +1,7 @@
[gd_scene load_steps=22 format=3 uid="uid://bfbragmmdwfbl"]
[gd_scene load_steps=23 format=3 uid="uid://bfbragmmdwfbl"]
[ext_resource type="Script" path="res://src/UI/TilesPanel.gd" id="1_d2oc5"]
[ext_resource type="Texture2D" uid="uid://bqr3n3tm8b6w2" path="res://assets/graphics/tileset/place_tiles_disabled.png" id="2_pv2cd"]
[ext_resource type="Texture2D" uid="uid://bv7ldl8obhawm" path="res://assets/graphics/misc/icon_reload.png" id="2_r1kie"]
[ext_resource type="Texture2D" uid="uid://bpsfilx47bw3r" path="res://assets/graphics/misc/mirror_x.svg" id="3_5o62r"]
[ext_resource type="Texture2D" uid="uid://bk6iaxiyl74ih" path="res://assets/graphics/misc/mirror_y.svg" id="4_2xhnr"]
@ -66,23 +67,52 @@ script = ExtResource("1_d2oc5")
[node name="VBoxContainer" type="VBoxContainer" parent="."]
layout_mode = 2
[node name="PlaceTiles" type="CheckBox" parent="VBoxContainer"]
[node name="MarginContainer" type="MarginContainer" parent="VBoxContainer"]
layout_mode = 2
[node name="VBoxContainer" type="VBoxContainer" parent="VBoxContainer/MarginContainer"]
layout_mode = 2
[node name="Buttons" type="HBoxContainer" parent="VBoxContainer/MarginContainer/VBoxContainer"]
layout_mode = 2
[node name="PlaceTiles" type="Button" parent="VBoxContainer/MarginContainer/VBoxContainer/Buttons" groups=["UIButtons"]]
unique_name_in_owner = true
custom_minimum_size = Vector2(25, 25)
layout_mode = 2
size_flags_vertical = 0
mouse_default_cursor_shape = 2
toggle_mode = true
shortcut = SubResource("Shortcut_6ebuw")
text = "Draw tiles"
[node name="TransformButtonsContainer" type="HFlowContainer" parent="VBoxContainer"]
[node name="TextureRect" type="TextureRect" parent="VBoxContainer/MarginContainer/VBoxContainer/Buttons/PlaceTiles"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("2_pv2cd")
expand_mode = 1
stretch_mode = 5
[node name="VSeparator" type="VSeparator" parent="VBoxContainer/MarginContainer/VBoxContainer/Buttons"]
layout_mode = 2
[node name="RotateLeftButton" type="Button" parent="VBoxContainer/TransformButtonsContainer" groups=["UIButtons"]]
[node name="TransformButtonsContainer" type="HFlowContainer" parent="VBoxContainer/MarginContainer/VBoxContainer/Buttons"]
unique_name_in_owner = true
visible = false
layout_mode = 2
size_flags_horizontal = 3
[node name="RotateLeftButton" type="Button" parent="VBoxContainer/MarginContainer/VBoxContainer/Buttons/TransformButtonsContainer" groups=["UIButtons"]]
custom_minimum_size = Vector2(24, 24)
layout_mode = 2
tooltip_text = "Rotate tile left (counterclockwise)"
mouse_default_cursor_shape = 2
shortcut = SubResource("Shortcut_yas23")
[node name="TextureRect" type="TextureRect" parent="VBoxContainer/TransformButtonsContainer/RotateLeftButton"]
[node name="TextureRect" type="TextureRect" parent="VBoxContainer/MarginContainer/VBoxContainer/Buttons/TransformButtonsContainer/RotateLeftButton"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
@ -92,14 +122,14 @@ grow_vertical = 2
texture = ExtResource("2_r1kie")
stretch_mode = 3
[node name="RotateRightButton" type="Button" parent="VBoxContainer/TransformButtonsContainer" groups=["UIButtons"]]
[node name="RotateRightButton" type="Button" parent="VBoxContainer/MarginContainer/VBoxContainer/Buttons/TransformButtonsContainer" groups=["UIButtons"]]
custom_minimum_size = Vector2(24, 24)
layout_mode = 2
tooltip_text = "Rotate tile right (clockwise)"
mouse_default_cursor_shape = 2
shortcut = SubResource("Shortcut_cmy2w")
[node name="TextureRect" type="TextureRect" parent="VBoxContainer/TransformButtonsContainer/RotateRightButton"]
[node name="TextureRect" type="TextureRect" parent="VBoxContainer/MarginContainer/VBoxContainer/Buttons/TransformButtonsContainer/RotateRightButton"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
@ -110,14 +140,14 @@ texture = ExtResource("2_r1kie")
stretch_mode = 3
flip_h = true
[node name="FlipHorizontalButton" type="Button" parent="VBoxContainer/TransformButtonsContainer" groups=["UIButtons"]]
[node name="FlipHorizontalButton" type="Button" parent="VBoxContainer/MarginContainer/VBoxContainer/Buttons/TransformButtonsContainer" groups=["UIButtons"]]
custom_minimum_size = Vector2(24, 24)
layout_mode = 2
tooltip_text = "Flip tile horizontally"
mouse_default_cursor_shape = 2
shortcut = SubResource("Shortcut_ouoxo")
[node name="TextureRect" type="TextureRect" parent="VBoxContainer/TransformButtonsContainer/FlipHorizontalButton"]
[node name="TextureRect" type="TextureRect" parent="VBoxContainer/MarginContainer/VBoxContainer/Buttons/TransformButtonsContainer/FlipHorizontalButton"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
@ -127,14 +157,14 @@ grow_vertical = 2
texture = ExtResource("3_5o62r")
stretch_mode = 3
[node name="FlipVerticalButton" type="Button" parent="VBoxContainer/TransformButtonsContainer" groups=["UIButtons"]]
[node name="FlipVerticalButton" type="Button" parent="VBoxContainer/MarginContainer/VBoxContainer/Buttons/TransformButtonsContainer" groups=["UIButtons"]]
custom_minimum_size = Vector2(24, 24)
layout_mode = 2
tooltip_text = "Flip tile vertically"
mouse_default_cursor_shape = 2
shortcut = SubResource("Shortcut_jj4yy")
[node name="TextureRect" type="TextureRect" parent="VBoxContainer/TransformButtonsContainer/FlipVerticalButton"]
[node name="TextureRect" type="TextureRect" parent="VBoxContainer/MarginContainer/VBoxContainer/Buttons/TransformButtonsContainer/FlipVerticalButton"]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
@ -144,17 +174,19 @@ grow_vertical = 2
texture = ExtResource("4_2xhnr")
stretch_mode = 3
[node name="ModeButtonsContainer" type="HFlowContainer" parent="VBoxContainer"]
[node name="ModeButtonsContainer" type="HFlowContainer" parent="VBoxContainer/MarginContainer/VBoxContainer/Buttons"]
unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 3
[node name="Manual" type="CheckBox" parent="VBoxContainer/ModeButtonsContainer"]
[node name="Manual" type="CheckBox" parent="VBoxContainer/MarginContainer/VBoxContainer/Buttons/ModeButtonsContainer"]
layout_mode = 2
mouse_default_cursor_shape = 2
button_group = SubResource("ButtonGroup_uxnt0")
shortcut = SubResource("Shortcut_pgg48")
text = "Manual"
[node name="Auto" type="CheckBox" parent="VBoxContainer/ModeButtonsContainer"]
[node name="Auto" type="CheckBox" parent="VBoxContainer/MarginContainer/VBoxContainer/Buttons/ModeButtonsContainer"]
layout_mode = 2
mouse_default_cursor_shape = 2
button_pressed = true
@ -162,28 +194,43 @@ button_group = SubResource("ButtonGroup_uxnt0")
shortcut = SubResource("Shortcut_a0fx5")
text = "Auto"
[node name="Stack" type="CheckBox" parent="VBoxContainer/ModeButtonsContainer"]
[node name="Stack" type="CheckBox" parent="VBoxContainer/MarginContainer/VBoxContainer/Buttons/ModeButtonsContainer"]
layout_mode = 2
mouse_default_cursor_shape = 2
button_group = SubResource("ButtonGroup_uxnt0")
shortcut = SubResource("Shortcut_ysxej")
text = "Stack"
[node name="HSeparator" type="HSeparator" parent="VBoxContainer/MarginContainer/VBoxContainer"]
layout_mode = 2
[node name="Tip" type="Label" parent="VBoxContainer/MarginContainer/VBoxContainer"]
unique_name_in_owner = true
custom_minimum_size = Vector2(20, 0)
layout_mode = 2
autowrap_mode = 3
[node name="HSeparator2" type="HSeparator" parent="VBoxContainer/MarginContainer/VBoxContainer"]
layout_mode = 2
[node name="ScrollContainer" type="ScrollContainer" parent="VBoxContainer"]
layout_mode = 2
size_flags_vertical = 3
[node name="TileButtonContainer" type="HFlowContainer" parent="VBoxContainer/ScrollContainer"]
unique_name_in_owner = true
[node name="MarginContainer" type="MarginContainer" parent="VBoxContainer/ScrollContainer"]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
[connection signal="toggled" from="VBoxContainer/PlaceTiles" to="." method="_on_place_tiles_toggled"]
[connection signal="pressed" from="VBoxContainer/TransformButtonsContainer/RotateLeftButton" to="." method="_on_rotate_pressed" binds= [false]]
[connection signal="pressed" from="VBoxContainer/TransformButtonsContainer/RotateRightButton" to="." method="_on_rotate_pressed" binds= [true]]
[connection signal="pressed" from="VBoxContainer/TransformButtonsContainer/FlipHorizontalButton" to="." method="_on_flip_horizontal_button_pressed"]
[connection signal="pressed" from="VBoxContainer/TransformButtonsContainer/FlipVerticalButton" to="." method="_on_flip_vertical_button_pressed"]
[connection signal="toggled" from="VBoxContainer/ModeButtonsContainer/Manual" to="." method="_on_manual_toggled"]
[connection signal="toggled" from="VBoxContainer/ModeButtonsContainer/Auto" to="." method="_on_auto_toggled"]
[connection signal="toggled" from="VBoxContainer/ModeButtonsContainer/Stack" to="." method="_on_stack_toggled"]
[node name="TileButtonContainer" type="HFlowContainer" parent="VBoxContainer/ScrollContainer/MarginContainer"]
unique_name_in_owner = true
layout_mode = 2
[connection signal="toggled" from="VBoxContainer/MarginContainer/VBoxContainer/Buttons/PlaceTiles" to="." method="_on_place_tiles_toggled"]
[connection signal="pressed" from="VBoxContainer/MarginContainer/VBoxContainer/Buttons/TransformButtonsContainer/RotateLeftButton" to="." method="_on_rotate_pressed" binds= [false]]
[connection signal="pressed" from="VBoxContainer/MarginContainer/VBoxContainer/Buttons/TransformButtonsContainer/RotateRightButton" to="." method="_on_rotate_pressed" binds= [true]]
[connection signal="pressed" from="VBoxContainer/MarginContainer/VBoxContainer/Buttons/TransformButtonsContainer/FlipHorizontalButton" to="." method="_on_flip_horizontal_button_pressed"]
[connection signal="pressed" from="VBoxContainer/MarginContainer/VBoxContainer/Buttons/TransformButtonsContainer/FlipVerticalButton" to="." method="_on_flip_vertical_button_pressed"]
[connection signal="toggled" from="VBoxContainer/MarginContainer/VBoxContainer/Buttons/ModeButtonsContainer/Manual" to="." method="_on_manual_toggled"]
[connection signal="toggled" from="VBoxContainer/MarginContainer/VBoxContainer/Buttons/ModeButtonsContainer/Auto" to="." method="_on_auto_toggled"]
[connection signal="toggled" from="VBoxContainer/MarginContainer/VBoxContainer/Buttons/ModeButtonsContainer/Stack" to="." method="_on_stack_toggled"]