mirror of
https://github.com/Orama-Interactive/Pixelorama.git
synced 2025-02-07 10:59:49 +00:00
91aea32864
* Implement 3D layers
* Remove unneeded files
* Fix bug where a single hidden layer would ignore all of the layers on top when exporting
* Fix pxo loading
* Remove junk nodes from 3DShapeEdit
Seems like they were created when I copied from the old 3D Options.tscn panel to the new 3D Shape Edit tool.
* Make light gizmos half the size, and hide gizmos when rotating
* Fix crash when using the 3D shape edit tool on a group layer
* Remove unneeded code in Canvas.gd
* Add torus in the Cel3DObject.Type enumerator
Torus isn't currently supported in Godot 3.5, but it is in 3.6 and 4.0, so this is just future-proofing. May break compatibility with .pxo files that were exported with 3D layers before this change.
* Toggle 3D object visibility
* Change texts and some variable names
* Fill translation strings
* Fix crash on group blending, and make the code in Export.blend_layers() more general
* Fix errors when attempting to draw on a 3D cel
Can occur when multiple cels are selected, some of them 3D and some of them pixel
* Make scene properties and objects be per-cel instead of per-layer
Breaks compatibility with previous .pxo files that had 3D layers. Also introduces serialize() and deserialize() methods to BaseCel
* Use if not layer is get_script() in GroupLayer.blend_children()
* Flip the condition in GroupLayer.blend_children()
* Fix bug where locked/invisible layers could get drawn
Regression from c2f6bf0f3f
* Move gizmo code to 3DShapeEdit's draw_start(), move some undo/redo logic to 3DShapeEdit
* Move all of the undo/redo code to 3DShapeEdit, simplify code in Cel3D
* Store Cel3D image data to pxo, for easy usage by external software
This makes importing projects with 3D layers to other software, such as Godot using godot_pixelorama_importer easier.
* Make the linter happy
* Fix bug where the previously selected object would remain selected when it got removed with undo
42 lines
865 B
GDScript
42 lines
865 B
GDScript
class_name PixelLayer
|
|
extends BaseLayer
|
|
# A class for standard pixel layer properties.
|
|
|
|
|
|
func _init(_project, _name := "") -> void:
|
|
project = _project
|
|
name = _name
|
|
|
|
|
|
# Overridden Methods:
|
|
|
|
|
|
func serialize() -> Dictionary:
|
|
var dict := .serialize()
|
|
dict["type"] = get_layer_type()
|
|
dict["new_cels_linked"] = new_cels_linked
|
|
return dict
|
|
|
|
|
|
func deserialize(dict: Dictionary) -> void:
|
|
.deserialize(dict)
|
|
new_cels_linked = dict.new_cels_linked
|
|
|
|
|
|
func get_layer_type() -> int:
|
|
return Global.LayerTypes.PIXEL
|
|
|
|
|
|
func new_empty_cel() -> BaseCel:
|
|
var image := Image.new()
|
|
image.create(project.size.x, project.size.y, false, Image.FORMAT_RGBA8)
|
|
return PixelCel.new(image)
|
|
|
|
|
|
func can_layer_get_drawn() -> bool:
|
|
return is_visible_in_hierarchy() && !is_locked_in_hierarchy()
|
|
|
|
|
|
func instantiate_layer_button() -> Node:
|
|
return Global.pixel_layer_button_node.instance()
|