1
0
Fork 0
mirror of https://github.com/Orama-Interactive/Pixelorama.git synced 2025-01-18 17:19:50 +00:00

Update CHANGELOG & Translations, clear whitespaces

This commit is contained in:
Manolis Papadeas 2021-03-15 03:41:02 +02:00
parent de164ea9de
commit 810affb1bc
8 changed files with 68 additions and 41 deletions

View file

@ -8,7 +8,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
## Unreleased ## Unreleased
This update has been brought to you by the contributions of: This update has been brought to you by the contributions of:
Laurenz Reinthaler (Schweini07), kleonc, Fayez Akhtar (Variable) Laurenz Reinthaler (Schweini07), kleonc, Fayez Akhtar (Variable), THWLF, Gamespleasure, ballerburg9005
### Added ### Added
- A new pan tool, used to move around the canvas. ([#399](https://github.com/Orama-Interactive/Pixelorama/pull/399)) - A new pan tool, used to move around the canvas. ([#399](https://github.com/Orama-Interactive/Pixelorama/pull/399))
@ -20,7 +20,11 @@ Laurenz Reinthaler (Schweini07), kleonc, Fayez Akhtar (Variable)
- Added offset options to the grid. ([#434](https://github.com/Orama-Interactive/Pixelorama/pull/434)) - Added offset options to the grid. ([#434](https://github.com/Orama-Interactive/Pixelorama/pull/434))
- The isometric grid has been refactored to work better and to offer more changeable options, such as the width and height of the cell bounds. ([#430](https://github.com/Orama-Interactive/Pixelorama/pull/430)) - The isometric grid has been refactored to work better and to offer more changeable options, such as the width and height of the cell bounds. ([#430](https://github.com/Orama-Interactive/Pixelorama/pull/430))
- Added portrait and landscape buttons in the new image dialog. - Added portrait and landscape buttons in the new image dialog.
- Full support for auto Tallscren/Widescreen has been implemented. ([#458](https://github.com/Orama-Interactive/Pixelorama/pull/458))
- Added a new Centralize Image option in the Image menu, which places the visible pixels of the image in the center of the canvas. ([#441](https://github.com/Orama-Interactive/Pixelorama/pull/441)) - Added a new Centralize Image option in the Image menu, which places the visible pixels of the image in the center of the canvas. ([#441](https://github.com/Orama-Interactive/Pixelorama/pull/441))
- Implemented the options to import a spritesheet as a new layer and to import an image and have it replace an already existing frame. ([#453](https://github.com/Orama-Interactive/Pixelorama/pull/453))
- More templates have been added when creating a new sprite. ([#450](https://github.com/Orama-Interactive/Pixelorama/pull/450))
- Added a keyboard shortcut for clear selection, `Control-D`. ([#457](https://github.com/Orama-Interactive/Pixelorama/pull/457))
### Changed ### Changed
- Undo and redo now work when their respective keyboard shortcuts are being held. ([#405](https://github.com/Orama-Interactive/Pixelorama/pull/405)) - Undo and redo now work when their respective keyboard shortcuts are being held. ([#405](https://github.com/Orama-Interactive/Pixelorama/pull/405))

View file

@ -154,6 +154,18 @@ msgstr ""
msgid "Window Transparency" msgid "Window Transparency"
msgstr "" msgstr ""
msgid "Panel Layout"
msgstr ""
msgid "Auto"
msgstr ""
msgid "Widescreen"
msgstr ""
msgid "Tallscreen"
msgstr ""
msgid "Mirror View" msgid "Mirror View"
msgstr "" msgstr ""
@ -202,9 +214,15 @@ msgstr ""
msgid "Spritesheet (new tab)" msgid "Spritesheet (new tab)"
msgstr "" msgstr ""
msgid "Spritesheet (new layer)"
msgstr ""
msgid "New frame" msgid "New frame"
msgstr "" msgstr ""
msgid "Replace frame"
msgstr ""
msgid "New layer" msgid "New layer"
msgstr "" msgstr ""
@ -223,6 +241,9 @@ msgstr ""
msgid "Vertical frames:" msgid "Vertical frames:"
msgstr "" msgstr ""
msgid "Start frame:"
msgstr ""
msgid "Brush type:" msgid "Brush type:"
msgstr "" msgstr ""

View file

@ -398,7 +398,7 @@ func open_image_as_spritesheet_layer(path : String, image : Image, file_name : S
# resize canvas to if "frame_width" or "frame_height" is too large # resize canvas to if "frame_width" or "frame_height" is too large
var project_width :int = max(frame_width, Global.current_project.size.x) var project_width :int = max(frame_width, Global.current_project.size.x)
var project_height :int = max(frame_height, Global.current_project.size.y) var project_height :int = max(frame_height, Global.current_project.size.y)
DrawingAlgos.resize_canvas(project_width, project_height,0 ,0) DrawingAlgos.resize_canvas(project_width, project_height,0 ,0)
# slice images # slice images
var image_no :int = 0 var image_no :int = 0
@ -424,14 +424,14 @@ func open_image_at_frame(image : Image, layer_index := 0, frame_index := 0) -> v
project.undos += 1 project.undos += 1
project.undo_redo.create_action("Replaced Frame") project.undo_redo.create_action("Replaced Frame")
var frames :Array = [] var frames :Array = []
# create a duplicate of "project.frames" # create a duplicate of "project.frames"
for i in project.frames.size(): for i in project.frames.size():
var frame := Frame.new() var frame := Frame.new()
frame.cels = project.frames[i].cels.duplicate(true) frame.cels = project.frames[i].cels.duplicate(true)
frames.append(frame) frames.append(frame)
for i in project.frames.size(): for i in project.frames.size():
if i == frame_index: if i == frame_index:
image.convert(Image.FORMAT_RGBA8) image.convert(Image.FORMAT_RGBA8)
@ -445,7 +445,7 @@ func open_image_at_frame(image : Image, layer_index := 0, frame_index := 0) -> v
project.undo_redo.add_undo_property(project, "frames", project.frames) project.undo_redo.add_undo_property(project, "frames", project.frames)
project.undo_redo.add_undo_property(project, "current_frame", project.current_frame) project.undo_redo.add_undo_property(project, "current_frame", project.current_frame)
project.undo_redo.add_do_method(Global, "redo") project.undo_redo.add_do_method(Global, "redo")
project.undo_redo.add_undo_method(Global, "undo") project.undo_redo.add_undo_method(Global, "undo")
project.undo_redo.commit_action() project.undo_redo.commit_action()

View file

@ -69,7 +69,7 @@ func _ready() -> void:
func handle_resize() -> void: func handle_resize() -> void:
var aspect_ratio = get_viewport_rect().size.x/(0.00001 if get_viewport_rect().size.y == 0 else get_viewport_rect().size.y) var aspect_ratio = get_viewport_rect().size.x/(0.00001 if get_viewport_rect().size.y == 0 else get_viewport_rect().size.y)
if ( (aspect_ratio <= 3.0/4.0 and Global.panel_layout != Global.PanelLayout.WIDESCREEN) if ( (aspect_ratio <= 3.0/4.0 and Global.panel_layout != Global.PanelLayout.WIDESCREEN)
or Global.panel_layout == Global.PanelLayout.TALLSCREEN): or Global.panel_layout == Global.PanelLayout.TALLSCREEN):
change_ui_layout("tallscreen") change_ui_layout("tallscreen")
else: else:
@ -78,12 +78,12 @@ func handle_resize() -> void:
func change_ui_layout(mode : String) -> void: func change_ui_layout(mode : String) -> void:
var colorpicker_is_switched = true if tool_and_palette_vsplit.has_node("ScrollContainer") else false var colorpicker_is_switched = true if tool_and_palette_vsplit.has_node("ScrollContainer") else false
if mode == "tallscreen" and not tallscreen_is_active: if mode == "tallscreen" and not tallscreen_is_active:
tallscreen_is_active = true tallscreen_is_active = true
reparent_node_to(right_panel, bottom_panel, 0) reparent_node_to(right_panel, bottom_panel, 0)
right_panel.rect_min_size.y = 300 right_panel.rect_min_size.y = 300
reparent_node_to(canvas_preview_container, tool_and_palette_vsplit, 1) reparent_node_to(canvas_preview_container, tool_and_palette_vsplit, 1)
tool_and_palette_vsplit = replace_node_with(tool_and_palette_vsplit, HBoxContainer.new()) tool_and_palette_vsplit = replace_node_with(tool_and_palette_vsplit, HBoxContainer.new())
color_and_tool_options.rect_min_size.x = 280 color_and_tool_options.rect_min_size.x = 280
reparent_node_to(tool_panel, ui.get_node("CanvasAndTimeline/HBoxContainer"), 0) reparent_node_to(tool_panel, ui.get_node("CanvasAndTimeline/HBoxContainer"), 0)
@ -91,12 +91,12 @@ func change_ui_layout(mode : String) -> void:
tallscreen_is_active = false tallscreen_is_active = false
reparent_node_to(right_panel, ui, -1) reparent_node_to(right_panel, ui, -1)
right_panel.rect_min_size.y = 0 right_panel.rect_min_size.y = 0
reparent_node_to(canvas_preview_container, right_panel.get_node("PreviewAndPalettes"), 0) reparent_node_to(canvas_preview_container, right_panel.get_node("PreviewAndPalettes"), 0)
tool_and_palette_vsplit = replace_node_with(tool_and_palette_vsplit, VSplitContainer.new()) tool_and_palette_vsplit = replace_node_with(tool_and_palette_vsplit, VSplitContainer.new())
color_and_tool_options.rect_min_size.x = 0 color_and_tool_options.rect_min_size.x = 0
canvas_preview_container.visible = true canvas_preview_container.visible = true
reparent_node_to(tool_panel, ui, 0) reparent_node_to(tool_panel, ui, 0)
if get_viewport_rect().size.x < 908 and mode == "tallscreen": if get_viewport_rect().size.x < 908 and mode == "tallscreen":
canvas_preview_container.visible = false canvas_preview_container.visible = false
else: else:

View file

@ -141,6 +141,9 @@ func create_contributors() -> void:
contributors.create_item(contributor_root).set_text(0, " Rémi Verschelde (akien-mga)") contributors.create_item(contributor_root).set_text(0, " Rémi Verschelde (akien-mga)")
contributors.create_item(contributor_root).set_text(0, " gschwind") contributors.create_item(contributor_root).set_text(0, " gschwind")
contributors.create_item(contributor_root).set_text(0, " Fayez Akhtar (Variable)") contributors.create_item(contributor_root).set_text(0, " Fayez Akhtar (Variable)")
contributors.create_item(contributor_root).set_text(0, " THWLF")
contributors.create_item(contributor_root).set_text(0, " Gamespleasure")
contributors.create_item(contributor_root).set_text(0, " ballerburg9005")
func create_translators() -> void: func create_translators() -> void:

View file

@ -18,7 +18,7 @@ var templates := [
Template.new(Vector2(32, 32)), Template.new(Vector2(32, 32)),
Template.new(Vector2(64, 64)), Template.new(Vector2(64, 64)),
Template.new(Vector2(128, 128)), Template.new(Vector2(128, 128)),
# Nintendo # Nintendo
Template.new(Vector2(160, 144), "GB"), Template.new(Vector2(160, 144), "GB"),
Template.new(Vector2(240, 160), "GBA"), Template.new(Vector2(240, 160), "GBA"),
@ -28,17 +28,17 @@ var templates := [
Template.new(Vector2(512, 480), "SNES (PAL)"), Template.new(Vector2(512, 480), "SNES (PAL)"),
Template.new(Vector2(646, 486), "N64 (NTSC)"), Template.new(Vector2(646, 486), "N64 (NTSC)"),
Template.new(Vector2(786, 576), "N64 (PAL)"), Template.new(Vector2(786, 576), "N64 (PAL)"),
# Sega # Sega
Template.new(Vector2(256, 192), "SMS (NTSC)"), Template.new(Vector2(256, 192), "SMS (NTSC)"),
Template.new(Vector2(256, 224), "SMS (PAL)"), Template.new(Vector2(256, 224), "SMS (PAL)"),
Template.new(Vector2(160, 144), "GG"), Template.new(Vector2(160, 144), "GG"),
Template.new(Vector2(320, 224), "MD (NTSC)"), Template.new(Vector2(320, 224), "MD (NTSC)"),
Template.new(Vector2(320, 240), "MD (PAL)"), Template.new(Vector2(320, 240), "MD (PAL)"),
# NEC # NEC
Template.new(Vector2(256, 239), "PC Engine"), #256×224 to 512×242 (mostly 256×239) Template.new(Vector2(256, 239), "PC Engine"), #256×224 to 512×242 (mostly 256×239)
# DOS # DOS
Template.new(Vector2(320, 200), "DOS EGA"), Template.new(Vector2(320, 200), "DOS EGA"),
Template.new(Vector2(320, 200), "DOS VGA"), Template.new(Vector2(320, 200), "DOS VGA"),
@ -47,7 +47,7 @@ var templates := [
Template.new(Vector2(320, 200), "DOS CGA (4-Colour)"), Template.new(Vector2(320, 200), "DOS CGA (4-Colour)"),
Template.new(Vector2(160, 240), "DOS CGA (Composite)"), Template.new(Vector2(160, 240), "DOS CGA (Composite)"),
Template.new(Vector2(160, 240), "Tandy"), Template.new(Vector2(160, 240), "Tandy"),
# Commodore # Commodore
Template.new(Vector2(320, 200), "Amiga OCS LowRes (NTSC)"), Template.new(Vector2(320, 200), "Amiga OCS LowRes (NTSC)"),
Template.new(Vector2(320, 256), "Amiga OCS LowRes (PAL)"), Template.new(Vector2(320, 256), "Amiga OCS LowRes (PAL)"),
@ -57,7 +57,7 @@ var templates := [
Template.new(Vector2(1280, 256), "Amiga ECS SuperHiRes (PAL)"), Template.new(Vector2(1280, 256), "Amiga ECS SuperHiRes (PAL)"),
Template.new(Vector2(640, 480), "Amiga ECS Multiscan"), Template.new(Vector2(640, 480), "Amiga ECS Multiscan"),
Template.new(Vector2(320, 200), "C64"), Template.new(Vector2(320, 200), "C64"),
# Sinclair # Sinclair
Template.new(Vector2(256, 192), "ZX Spectrum"), Template.new(Vector2(256, 192), "ZX Spectrum"),
] ]

View file

@ -25,18 +25,18 @@ onready var new_brush_name = $VBoxContainer/HBoxContainer/NewBrushOptions/BrushN
func _on_PreviewDialog_about_to_show() -> void: func _on_PreviewDialog_about_to_show() -> void:
var import_options :OptionButton= get_node("VBoxContainer/HBoxContainer/ImportOption") var import_options :OptionButton= get_node("VBoxContainer/HBoxContainer/ImportOption")
# # order as in ImageImportOptions enum # # order as in ImageImportOptions enum
import_options.add_item("New tab") import_options.add_item("New tab")
import_options.add_item("Spritesheet (new tab)") import_options.add_item("Spritesheet (new tab)")
import_options.add_item("Spritesheet (new layer)") import_options.add_item("Spritesheet (new layer)")
import_options.add_item("New frame") import_options.add_item("New frame")
import_options.add_item("Replace Frame") import_options.add_item("Replace frame")
import_options.add_item("New layer") import_options.add_item("New layer")
import_options.add_item("New palette") import_options.add_item("New palette")
import_options.add_item("New brush") import_options.add_item("New brush")
import_options.add_item("New pattern") import_options.add_item("New pattern")
var img_texture := ImageTexture.new() var img_texture := ImageTexture.new()
img_texture.create_from_image(image, 0) img_texture.create_from_image(image, 0)
texture_rect.texture = img_texture texture_rect.texture = img_texture
@ -117,7 +117,7 @@ func _on_ImportOption_item_selected(id : int) -> void:
texture_rect.get_child(0).visible = true texture_rect.get_child(0).visible = true
texture_rect.get_child(1).visible = true texture_rect.get_child(1).visible = true
rect_size.x = spritesheet_tab_options.rect_size.x rect_size.x = spritesheet_tab_options.rect_size.x
elif id == ImageImportOptions.SPRITESHEET_LAYER: elif id == ImageImportOptions.SPRITESHEET_LAYER:
frame_size_label.visible = true frame_size_label.visible = true
spritesheet_tab_options.visible = true spritesheet_tab_options.visible = true

View file

@ -121,19 +121,18 @@ value = 1.0
[node name="SpritesheetLayerOptions" type="HBoxContainer" parent="VBoxContainer/HBoxContainer"] [node name="SpritesheetLayerOptions" type="HBoxContainer" parent="VBoxContainer/HBoxContainer"]
visible = false visible = false
margin_left = 155.0 margin_left = 155.0
margin_right = 692.0 margin_right = 307.0
margin_bottom = 24.0 margin_bottom = 24.0
[node name="Label3" type="Label" parent="VBoxContainer/HBoxContainer/SpritesheetLayerOptions"] [node name="Label3" type="Label" parent="VBoxContainer/HBoxContainer/SpritesheetLayerOptions"]
margin_left = 382.0
margin_top = 5.0 margin_top = 5.0
margin_right = 459.0 margin_right = 74.0
margin_bottom = 19.0 margin_bottom = 19.0
text = "Start Frame:" text = "Start frame:"
[node name="AtFrameSpinbox" type="SpinBox" parent="VBoxContainer/HBoxContainer/SpritesheetLayerOptions"] [node name="AtFrameSpinbox" type="SpinBox" parent="VBoxContainer/HBoxContainer/SpritesheetLayerOptions"]
margin_left = 463.0 margin_left = 78.0
margin_right = 537.0 margin_right = 152.0
margin_bottom = 24.0 margin_bottom = 24.0
min_value = 1.0 min_value = 1.0
value = 1.0 value = 1.0
@ -160,32 +159,32 @@ max_value = 0.0
[node name="ReplaceFrameOptions" type="HBoxContainer" parent="VBoxContainer/HBoxContainer"] [node name="ReplaceFrameOptions" type="HBoxContainer" parent="VBoxContainer/HBoxContainer"]
visible = false visible = false
margin_left = 155.0 margin_left = 155.0
margin_right = 433.0 margin_right = 427.0
margin_bottom = 24.0 margin_bottom = 24.0
[node name="Label" type="Label" parent="VBoxContainer/HBoxContainer/ReplaceFrameOptions"] [node name="Label" type="Label" parent="VBoxContainer/HBoxContainer/ReplaceFrameOptions"]
margin_top = 5.0 margin_top = 5.0
margin_right = 56.0 margin_right = 53.0
margin_bottom = 19.0 margin_bottom = 19.0
text = "At Layer:" text = "At layer:"
[node name="AtLayerSpinbox" type="SpinBox" parent="VBoxContainer/HBoxContainer/ReplaceFrameOptions"] [node name="AtLayerSpinbox" type="SpinBox" parent="VBoxContainer/HBoxContainer/ReplaceFrameOptions"]
margin_left = 60.0 margin_left = 57.0
margin_right = 134.0 margin_right = 131.0
margin_bottom = 24.0 margin_bottom = 24.0
mouse_default_cursor_shape = 2 mouse_default_cursor_shape = 2
max_value = 0.0 max_value = 0.0
[node name="Label2" type="Label" parent="VBoxContainer/HBoxContainer/ReplaceFrameOptions"] [node name="Label2" type="Label" parent="VBoxContainer/HBoxContainer/ReplaceFrameOptions"]
margin_left = 138.0 margin_left = 135.0
margin_top = 5.0 margin_top = 5.0
margin_right = 200.0 margin_right = 194.0
margin_bottom = 19.0 margin_bottom = 19.0
text = "At Frame:" text = "At frame:"
[node name="AtFrameSpinbox" type="SpinBox" parent="VBoxContainer/HBoxContainer/ReplaceFrameOptions"] [node name="AtFrameSpinbox" type="SpinBox" parent="VBoxContainer/HBoxContainer/ReplaceFrameOptions"]
margin_left = 204.0 margin_left = 198.0
margin_right = 278.0 margin_right = 272.0
margin_bottom = 24.0 margin_bottom = 24.0
mouse_default_cursor_shape = 2 mouse_default_cursor_shape = 2
min_value = 1.0 min_value = 1.0
@ -216,19 +215,19 @@ value = 1.0
[node name="NewBrushOptions" type="HBoxContainer" parent="VBoxContainer/HBoxContainer"] [node name="NewBrushOptions" type="HBoxContainer" parent="VBoxContainer/HBoxContainer"]
visible = false visible = false
margin_left = 155.0 margin_left = 155.0
margin_right = 471.0 margin_right = 324.0
margin_bottom = 24.0 margin_bottom = 20.0
[node name="Label" type="Label" parent="VBoxContainer/HBoxContainer/NewBrushOptions"] [node name="Label" type="Label" parent="VBoxContainer/HBoxContainer/NewBrushOptions"]
margin_top = 5.0 margin_top = 3.0
margin_right = 73.0 margin_right = 73.0
margin_bottom = 19.0 margin_bottom = 17.0
text = "Brush type:" text = "Brush type:"
[node name="BrushTypeOption" type="OptionButton" parent="VBoxContainer/HBoxContainer/NewBrushOptions"] [node name="BrushTypeOption" type="OptionButton" parent="VBoxContainer/HBoxContainer/NewBrushOptions"]
margin_left = 77.0 margin_left = 77.0
margin_right = 169.0 margin_right = 169.0
margin_bottom = 24.0 margin_bottom = 20.0
mouse_default_cursor_shape = 2 mouse_default_cursor_shape = 2
text = "File brush" text = "File brush"
items = [ "File brush", null, false, 0, null, "Project brush", null, false, 1, null, "Random brush", null, false, 2, null ] items = [ "File brush", null, false, 0, null, "Project brush", null, false, 1, null, "Random brush", null, false, 2, null ]