diff --git a/export_presets.cfg b/export_presets.cfg index 49fe059..2a5fb80 100644 --- a/export_presets.cfg +++ b/export_presets.cfg @@ -3,16 +3,18 @@ name="Export Extension (PCK)" platform="Windows Desktop" runnable=true +advanced_options=false dedicated_server=false custom_features="" export_filter="all_resources" include_filter="*.json" -exclude_filter="res://src/Extensions/TimeTracking/EmptyClasses/*" +exclude_filter="res://src/Classes/*" export_path="" encryption_include_filters="" encryption_exclude_filters="" encrypt_pck=false encrypt_directory=false +script_export_mode=2 [preset.0.options] @@ -20,10 +22,8 @@ custom_template/debug="" custom_template/release="" debug/export_console_wrapper=1 binary_format/embed_pck=false -texture_format/bptc=false -texture_format/s3tc=true -texture_format/etc=false -texture_format/etc2=false +texture_format/s3tc_bptc=true +texture_format/etc2_astc=false binary_format/architecture="x86_64" codesign/enable=false codesign/timestamp=true @@ -43,6 +43,8 @@ application/file_description="" application/copyright="" application/trademarks="" application/export_angle=0 +application/export_d3d12=0 +application/d3d12_agility_sdk_multiarch=true ssh_remote_deploy/enabled=false ssh_remote_deploy/host="user@host_ip" ssh_remote_deploy/port="22" @@ -60,5 +62,9 @@ Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorActi ssh_remote_deploy/cleanup_script="Stop-ScheduledTask -TaskName godot_remote_debug -ErrorAction:SilentlyContinue Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue Remove-Item -Recurse -Force '{temp_dir}'" +texture_format/bptc=false +texture_format/s3tc=true +texture_format/etc=false +texture_format/etc2=false binary_format/64_bits=true texture_format/no_bptc_fallbacks=true diff --git a/project.godot b/project.godot index b8898cb..e1dccc8 100644 --- a/project.godot +++ b/project.godot @@ -11,9 +11,7 @@ config_version=5 [application] config/name="TimeTracking" -config/description="A pixelorama Extention (The " -config/features=PackedStringArray("4.2") -" field are not related to extention system so they can be anything)run/main_scene"="res://src/Extensions/TimeTracking/Main.tscn" +config/features=PackedStringArray("4.3") [physics] @@ -21,5 +19,7 @@ common/enable_pause_aware_picking=true [rendering] +renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility" quality/driver/driver_name="GLES2" vram_compression/import_etc=true diff --git a/src/Classes/Project.gd b/src/Classes/Project.gd new file mode 100644 index 0000000..feb640b --- /dev/null +++ b/src/Classes/Project.gd @@ -0,0 +1,8 @@ +# gdlint: ignore=max-public-methods +class_name Project +extends RefCounted +# A class for project properties. + + +func _init(_frames := [], _name := tr("untitled"), _size := Vector2(64, 64)) -> void: + pass diff --git a/src/Extensions/TimeTracking/EmptyClasses/AnimationTag.gd b/src/Extensions/TimeTracking/EmptyClasses/AnimationTag.gd deleted file mode 100644 index 730583a..0000000 --- a/src/Extensions/TimeTracking/EmptyClasses/AnimationTag.gd +++ /dev/null @@ -1,7 +0,0 @@ -class_name AnimationTag -extends RefCounted -# A class for frame tag properties - - -func _init(_name, _color, _from, _to) -> void: - pass diff --git a/src/Extensions/TimeTracking/EmptyClasses/BaseCel.gd b/src/Extensions/TimeTracking/EmptyClasses/BaseCel.gd deleted file mode 100644 index 8b0c6b4..0000000 --- a/src/Extensions/TimeTracking/EmptyClasses/BaseCel.gd +++ /dev/null @@ -1,5 +0,0 @@ -class_name BaseCel -extends RefCounted -## Base class for cel properties. -## The term "cel" comes from "celluloid" (https://en.wikipedia.org/wiki/Cel). - diff --git a/src/Extensions/TimeTracking/EmptyClasses/BaseLayer.gd b/src/Extensions/TimeTracking/EmptyClasses/BaseLayer.gd deleted file mode 100644 index 8fcdea2..0000000 --- a/src/Extensions/TimeTracking/EmptyClasses/BaseLayer.gd +++ /dev/null @@ -1,2 +0,0 @@ -class_name BaseLayer -extends RefCounted diff --git a/src/Extensions/TimeTracking/EmptyClasses/BaseTool.gd b/src/Extensions/TimeTracking/EmptyClasses/BaseTool.gd deleted file mode 100644 index f1b9840..0000000 --- a/src/Extensions/TimeTracking/EmptyClasses/BaseTool.gd +++ /dev/null @@ -1,2 +0,0 @@ -class_name BaseTool -extends VBoxContainer diff --git a/src/Extensions/TimeTracking/EmptyClasses/Cel3D.gd b/src/Extensions/TimeTracking/EmptyClasses/Cel3D.gd deleted file mode 100644 index 9e2870b..0000000 --- a/src/Extensions/TimeTracking/EmptyClasses/Cel3D.gd +++ /dev/null @@ -1,6 +0,0 @@ -class_name Cel3D -extends BaseCel - - -func _init(_size: Vector2, from_pxo := false, _object_prop := {}, _scene_prop := {}) -> void: - pass diff --git a/src/Extensions/TimeTracking/EmptyClasses/Cel3DObject.gd b/src/Extensions/TimeTracking/EmptyClasses/Cel3DObject.gd deleted file mode 100644 index e18c4cb..0000000 --- a/src/Extensions/TimeTracking/EmptyClasses/Cel3DObject.gd +++ /dev/null @@ -1,3 +0,0 @@ -class_name Cel3DObject -extends Node3D - diff --git a/src/Extensions/TimeTracking/EmptyClasses/Drawers.gd b/src/Extensions/TimeTracking/EmptyClasses/Drawers.gd deleted file mode 100644 index 3c3b2bd..0000000 --- a/src/Extensions/TimeTracking/EmptyClasses/Drawers.gd +++ /dev/null @@ -1 +0,0 @@ -class_name Drawer diff --git a/src/Extensions/TimeTracking/EmptyClasses/Frame.gd b/src/Extensions/TimeTracking/EmptyClasses/Frame.gd deleted file mode 100644 index 45c7252..0000000 --- a/src/Extensions/TimeTracking/EmptyClasses/Frame.gd +++ /dev/null @@ -1,8 +0,0 @@ -class_name Frame -extends RefCounted -# A class for frame properties. -# A frame is a collection of cels, for each layer. - - -func _init(_cels := [], _duration := 1.0) -> void: - pass diff --git a/src/Extensions/TimeTracking/EmptyClasses/GIFAnimationExporter.gd b/src/Extensions/TimeTracking/EmptyClasses/GIFAnimationExporter.gd deleted file mode 100644 index 69ab483..0000000 --- a/src/Extensions/TimeTracking/EmptyClasses/GIFAnimationExporter.gd +++ /dev/null @@ -1,8 +0,0 @@ -class_name GIFAnimationExporter -# Acts as the interface between the AImgIO format-independent interface and gdgifexporter. -# Note that if the interface needs changing for new features, do just change it! - - -func _init(): - pass - diff --git a/src/Extensions/TimeTracking/EmptyClasses/GroupCel.gd b/src/Extensions/TimeTracking/EmptyClasses/GroupCel.gd deleted file mode 100644 index 129e4e5..0000000 --- a/src/Extensions/TimeTracking/EmptyClasses/GroupCel.gd +++ /dev/null @@ -1,8 +0,0 @@ -class_name GroupCel -extends BaseCel -# A class for the properties of cels in GroupLayers. -# The term "cel" comes from "celluloid" (https://en.wikipedia.org/wiki/Cel). - - -func _init(_opacity := 1.0) -> void: - pass diff --git a/src/Extensions/TimeTracking/EmptyClasses/GroupLayer.gd b/src/Extensions/TimeTracking/EmptyClasses/GroupLayer.gd deleted file mode 100644 index be84d97..0000000 --- a/src/Extensions/TimeTracking/EmptyClasses/GroupLayer.gd +++ /dev/null @@ -1,9 +0,0 @@ -class_name GroupLayer -extends BaseLayer -# A class for group layer properties - -var expanded := true - - -func _init(_project, _name := "") -> void: - pass diff --git a/src/Extensions/TimeTracking/EmptyClasses/ImageEffect.gd b/src/Extensions/TimeTracking/EmptyClasses/ImageEffect.gd deleted file mode 100644 index cc7fb42..0000000 --- a/src/Extensions/TimeTracking/EmptyClasses/ImageEffect.gd +++ /dev/null @@ -1,4 +0,0 @@ -class_name ImageEffect -extends ConfirmationDialog -## Parent class for all image effects -## Methods that have "pass" are meant to be replaced by the inherited scripts diff --git a/src/Extensions/TimeTracking/EmptyClasses/Layer3D.gd b/src/Extensions/TimeTracking/EmptyClasses/Layer3D.gd deleted file mode 100644 index 209ac8a..0000000 --- a/src/Extensions/TimeTracking/EmptyClasses/Layer3D.gd +++ /dev/null @@ -1,6 +0,0 @@ -class_name Layer3D -extends BaseLayer - - -func _init(_project, _name := "") -> void: - pass diff --git a/src/Extensions/TimeTracking/EmptyClasses/ObjParse.gd b/src/Extensions/TimeTracking/EmptyClasses/ObjParse.gd deleted file mode 100644 index 3167903..0000000 --- a/src/Extensions/TimeTracking/EmptyClasses/ObjParse.gd +++ /dev/null @@ -1,10 +0,0 @@ -class_name ObjParse - -# Obj parser made by Ezcha, updated by Deakcor -# Created on 7/11/2018 -# https://ezcha.net -# https://github.com/Ezcha/gd-obj -# MIT License -# https://github.com/Ezcha/gd-obj/blob/master/LICENSE - -# Returns an array of materials from a MTL file diff --git a/src/Extensions/TimeTracking/EmptyClasses/PixelCel.gd b/src/Extensions/TimeTracking/EmptyClasses/PixelCel.gd deleted file mode 100644 index e7b21ec..0000000 --- a/src/Extensions/TimeTracking/EmptyClasses/PixelCel.gd +++ /dev/null @@ -1,9 +0,0 @@ -class_name PixelCel -extends BaseCel -# A class for the properties of cels in PixelLayers. -# The term "cel" comes from "celluloid" (https://en.wikipedia.org/wiki/Cel). -# The "image" variable is where the image data of each cel are. - - -func _init(_image := Image.new(), _opacity := 1.0, _image_texture: ImageTexture = null) -> void: - pass diff --git a/src/Extensions/TimeTracking/EmptyClasses/PixelLayer.gd b/src/Extensions/TimeTracking/EmptyClasses/PixelLayer.gd deleted file mode 100644 index 9327b2b..0000000 --- a/src/Extensions/TimeTracking/EmptyClasses/PixelLayer.gd +++ /dev/null @@ -1,7 +0,0 @@ -class_name PixelLayer -extends BaseLayer -# A class for standard pixel layer properties. - - -func _init(_project, _name := "") -> void: - pass diff --git a/src/Extensions/TimeTracking/EmptyClasses/Project.gd b/src/Extensions/TimeTracking/EmptyClasses/Project.gd deleted file mode 100644 index 6f310d6..0000000 --- a/src/Extensions/TimeTracking/EmptyClasses/Project.gd +++ /dev/null @@ -1,55 +0,0 @@ -# gdlint: ignore=max-public-methods -class_name Project -extends RefCounted -# A class for project properties. - -var name := "" -var size: Vector2 -var undo_redo := UndoRedo.new() -var tiles: Tiles -var undos := 0 # The number of times we added undo properties -var can_undo = true -var fill_color := Color(0) -var has_changed := false -# frames and layers Arrays should generally only be modified directly when -# opening/creating a project. When modifying the current project, use -# the add/remove/move/swap_frames/layers methods -var frames := [] # Array of Frames (that contain Cels) -var layers := [] # Array of Layers -var current_frame := 0 -var current_layer := 0 -var selected_cels := [[0, 0]] # Array of Arrays of 2 integers (frame & layer) - -var animation_tags := [] # Array of AnimationTags -var guides := [] # Array of Guides -var brushes := [] # Array of Images -var reference_images := [] # Array of ReferenceImages -var vanishing_points := [] # Array of Vanishing Points -var fps := 6.0 - -var x_symmetry_point -var y_symmetry_point -var x_symmetry_axis -var y_symmetry_axis - -var selection_map := SelectionMap.new() -# This is useful for when the selection is outside of the canvas boundaries, -# on the left and/or above (negative coords) -var selection_offset := Vector2.ZERO -var has_selection := false - -# For every camera (currently there are 3) -var cameras_rotation := [0.0, 0.0, 0.0] # Array of float -var cameras_zoom := [Vector2(0.15, 0.15), Vector2(0.15, 0.15), Vector2(0.15, 0.15)] -var cameras_offset := [Vector2.ZERO, Vector2.ZERO, Vector2.ZERO] -var cameras_zoom_max := [Vector2.ONE, Vector2.ONE, Vector2.ONE] - -# Export directory path and export file name -var directory_path := "" -var file_name := "untitled" -var file_format: int -var was_exported := false -var export_overwrite := false - -func _init(_frames := [], _name := tr("untitled"), _size := Vector2(64, 64)) -> void: - pass diff --git a/src/Extensions/TimeTracking/EmptyClasses/SelectionMap.gd b/src/Extensions/TimeTracking/EmptyClasses/SelectionMap.gd deleted file mode 100644 index 9a76904..0000000 --- a/src/Extensions/TimeTracking/EmptyClasses/SelectionMap.gd +++ /dev/null @@ -1,2 +0,0 @@ -class_name SelectionMap -extends Image diff --git a/src/Extensions/TimeTracking/EmptyClasses/SelectionTool.gd b/src/Extensions/TimeTracking/EmptyClasses/SelectionTool.gd deleted file mode 100644 index 1c659c0..0000000 --- a/src/Extensions/TimeTracking/EmptyClasses/SelectionTool.gd +++ /dev/null @@ -1,2 +0,0 @@ -class_name SelectionTool -extends BaseTool diff --git a/src/Extensions/TimeTracking/EmptyClasses/ShaderImageEffect.gd b/src/Extensions/TimeTracking/EmptyClasses/ShaderImageEffect.gd deleted file mode 100644 index b62177e..0000000 --- a/src/Extensions/TimeTracking/EmptyClasses/ShaderImageEffect.gd +++ /dev/null @@ -1,3 +0,0 @@ -class_name ShaderImageEffect -extends RefCounted -# Helper class to generate image effects using shaders diff --git a/src/Extensions/TimeTracking/EmptyClasses/Tiles.gd b/src/Extensions/TimeTracking/EmptyClasses/Tiles.gd deleted file mode 100644 index 299c732..0000000 --- a/src/Extensions/TimeTracking/EmptyClasses/Tiles.gd +++ /dev/null @@ -1,6 +0,0 @@ -class_name Tiles -extends RefCounted - - -func _init(size: Vector2): - pass diff --git a/src/Extensions/TimeTracking/StatisticDialog/StatisticDialog.gd b/src/Extensions/TimeTracking/StatisticDialog/StatisticDialog.gd index 78804d2..fc8f53b 100644 --- a/src/Extensions/TimeTracking/StatisticDialog/StatisticDialog.gd +++ b/src/Extensions/TimeTracking/StatisticDialog/StatisticDialog.gd @@ -30,11 +30,23 @@ func _ready() -> void: # signal to detect manual saves (through "save"). this is unrelated to "save as" var file_menu: PopupMenu = extension_api.general.get_global().top_menu_container.file_menu + ## Re-ordering signal callables so that calculate_save gets called first + var old_file_menu_connections = file_menu.id_pressed.get_connections() + for connection in old_file_menu_connections: + file_menu.id_pressed.disconnect(connection["callable"]) file_menu.id_pressed.connect(calculate_save) + for connection in old_file_menu_connections: + file_menu.id_pressed.connect(connection["callable"], connection["flags"]) # signal to detect manual saves (through "file dialog") var save_dialog: FileDialog = extension_api.general.get_global().save_sprites_dialog + ## Re-ordering signal callables so that calculate_save gets called first + var old_save_dialog_connections = save_dialog.file_selected.get_connections() + for connection in old_save_dialog_connections: + save_dialog.file_selected.disconnect(connection["callable"]) save_dialog.file_selected.connect(calculate_save) + for connection in old_save_dialog_connections: + save_dialog.file_selected.connect(connection["callable"], connection["flags"]) change_target() @@ -77,10 +89,9 @@ func update_ui(): # Stat display functions ## Relatively simple and straightfarward function. Just displays "name" and "path" of project. func show_name_path(): - var p_info = extension_api.project.get_project_info(project_in_focus) - p_name.text = p_info.export_file_name - if p_info.save_path: - directory.text = p_info.save_path + p_name.text = project_in_focus.file_name + if project_in_focus.save_path: + directory.text = project_in_focus.save_path ## Displays the total time spent on target project in humanized format. @@ -137,12 +148,14 @@ func project_changes_made() -> void: # calculator of save func calculate_save(variant = null): + ## NOTE: we are using file dialog signals because this data has to be calculated "Before" + ## project gets saved. var total_saves = project_in_focus.get_meta("total_saves", 0) if typeof(variant) == TYPE_INT: - if variant == 4: # Save (not Save as) + if variant == extension_api.general.get_global().FileMenu.SAVE: # Save (not Save as) var opensave = get_node_or_null("/root/OpenSave") - var path = opensave.current_save_paths[extension_api.general.get_global().current_project_index] + var path = project_in_focus.save_path # Furthermore only increment if this isn't the "First" save # (As the first save is always the "Save as") diff --git a/src/Extensions/TimeTracking/extension.json b/src/Extensions/TimeTracking/extension.json index 55782ce..db4e9e5 100644 --- a/src/Extensions/TimeTracking/extension.json +++ b/src/Extensions/TimeTracking/extension.json @@ -6,5 +6,5 @@ "name": "TimeTracking", "nodes": [ "Main.tscn" ], "supported_api_versions": [ 4 ], -"version": "0.2" +"version": "0.3" }