diff --git a/Scripts/Dialogs/AboutDialog.gd b/Scripts/Dialogs/AboutDialog.gd index 842849051..b2d1e6f4f 100644 --- a/Scripts/Dialogs/AboutDialog.gd +++ b/Scripts/Dialogs/AboutDialog.gd @@ -27,6 +27,8 @@ func _ready() -> void: contributors.create_item(contributor_root).set_text(0, " danielnaoexiste") contributors.create_item(contributor_root).set_text(0, " Noah Burck (haonkrub)") contributors.create_item(contributor_root).set_text(0, " luiq54") + contributors.create_item(contributor_root).set_text(0, " Matheus Pesegoginski (MatheusPese)") + contributors.create_item(contributor_root).set_text(0, " sapient-cogbag") var donors_root := donors.create_item() donors.create_item(donors_root).set_text(0, " pcmxms") diff --git a/Scripts/Global.gd b/Scripts/Global.gd index b6a661e1d..d26493e5a 100644 --- a/Scripts/Global.gd +++ b/Scripts/Global.gd @@ -266,7 +266,7 @@ func _ready() -> void: root_directory = OS.get_executable_path().get_base_dir() # Load settings from the config file config_cache.load("user://cache.ini") - + # The fact that root_dir is set earlier than this is important # XDGDataDirs depends on it nyaa directory_module = XDGDataPaths.new() @@ -275,7 +275,7 @@ func _ready() -> void: transparent_background = ImageTexture.new() transparent_background.create_from_image(preload("res://Assets/Graphics/Canvas Backgrounds/Transparent Background Dark.png"), 0) image_clipboard = Image.new() - + var root = get_tree().get_root() control = find_node_by_name(root, "Control") top_menu_container = find_node_by_name(control, "TopMenuContainer") diff --git a/Scripts/Import.gd b/Scripts/Import.gd index f60bbb310..55e43d3fb 100644 --- a/Scripts/Import.gd +++ b/Scripts/Import.gd @@ -3,9 +3,9 @@ extends Node # Get hold of the brushes, including random brushes (subdirectories and % files # in them, non % files get loaded independently.) nyaaa # Returns a list of [ -# [non random single png files in the root subdir], +# [non random single png files in the root subdir], # { -# map of subdirectories to lists of files for +# map of subdirectories to lists of files for # the randomised brush - if a directory contains no # randomised files then it is not included in this. # }, @@ -14,25 +14,25 @@ extends Node # that are not for randomised brushes. # } # ] -# The separation of nonrandomised and randomised files +# The separation of nonrandomised and randomised files # in subdirectories allows different XDG_DATA_DIR overriding # for each nyaa. # # Returns null if the directory gave an error opening. -# +# func get_brush_files_from_directory(directory: String): # -> Array var base_png_files := [] # list of files in the base directory var subdirectories := [] # list of subdirectories to process. - - var randomised_subdir_files_map : Dictionary = {} + + var randomised_subdir_files_map : Dictionary = {} var nonrandomised_subdir_files_map : Dictionary = {} - + var main_directory : Directory = Directory.new() var err := main_directory.open(directory) if err != OK: return null - - + + # Build first the list of base png files and all subdirectories to # scan later (skip navigational . and ..) main_directory.list_dir_begin(true) @@ -44,26 +44,26 @@ func get_brush_files_from_directory(directory: String): # -> Array if fname.get_extension().to_lower() == "png": print_debug("Found brush at '%s'" % [fname]) base_png_files.append(fname) - + # go to next fname = main_directory.get_next() main_directory.list_dir_end() - + # Now we iterate over subdirectories! for subdirectory in subdirectories: var the_directory : Directory = Directory.new() - + # Holds names of files that make this # a component of a randomised brush ^.^ var randomised_files := [] - + # Non-randomise-indicated image files var non_randomised_files := [] - + the_directory.open(directory.plus_file(subdirectory)) the_directory.list_dir_begin(true) var curr_file := the_directory.get_next() - + while curr_file != "": # only do stuff if we are actually dealing with a file # and png one at that nya @@ -74,9 +74,9 @@ func get_brush_files_from_directory(directory: String): # -> Array else: non_randomised_files.append(curr_file) curr_file = the_directory.get_next() - + the_directory.list_dir_end() - + # Add these to the maps nyaa if len(randomised_files) > 0: randomised_subdir_files_map[subdirectory] = randomised_files @@ -87,13 +87,13 @@ func get_brush_files_from_directory(directory: String): # -> Array # Add a randomised brush from the given list of files as a -# source. -# The tooltip name is what shows up on the tooltip +# source. +# The tooltip name is what shows up on the tooltip # and is probably in this case the name of the containing # randomised directory. func add_randomised_brush(fpaths : Array, tooltip_name : String) -> void: # Attempt to load the images from the file paths. - var loaded_images : Array = [] + var loaded_images : Array = [] for filen in fpaths: var image := Image.new() var err := image.load(filen) @@ -101,19 +101,19 @@ func add_randomised_brush(fpaths : Array, tooltip_name : String) -> void: image.convert(Image.FORMAT_RGBA8) loaded_images.append(image) print_debug("Loaded image from '%s'" % [filen]) - + # If any images were successfully loaded, then # we create the randomised brush button, copied # from find_brushes. - + if len(loaded_images) > 0: # actually have images # to use. # take initial image... var first_image : Image = loaded_images.pop_front() - + # The index which this random brush will be at var next_random_brush_index := Global.file_brush_container.get_child_count() - + Global.custom_brushes.append(first_image) Global.create_brush_button(first_image, Global.Brush_Types.RANDOM_FILE, tooltip_name) # # Process the rest @@ -138,7 +138,7 @@ func add_plain_brush(path: String, tooltip_name: String) -> void: # i.e. with an override system # We use a very particular override system here where, for randomised brushes # the directories containing them get overridden, but for nonrandomised files -# (including in directories containing randomised components too), the override +# (including in directories containing randomised components too), the override # is on a file-by-file basis nyaaaa ^.^ func import_brushes(priority_ordered_search_path: Array) -> void: # Maps for files in the base directory (name : true) @@ -147,12 +147,12 @@ func import_brushes(priority_ordered_search_path: Array) -> void: # Map from a subdirectory to a map similar to processed_basedir_files # i.e. once a filename has been dealt with, set it to true. var processed_subdir_paths : Dictionary = {} - + # Sets of results of get_brush_files_from_directory var all_available_paths : Array = [] for directory in priority_ordered_search_path: all_available_paths.append(get_brush_files_from_directory(directory)) - + # Now to process. Note these are in order of the # priority, as intended nyaa :) for i in range(len(all_available_paths)): @@ -161,27 +161,27 @@ func import_brushes(priority_ordered_search_path: Array) -> void: if available_brush_file_information != null: # The brush files in the main directory var main_directory_file_paths : Array = available_brush_file_information[0] - # The subdirectory/list-of-randomised-brush-files + # The subdirectory/list-of-randomised-brush-files # map for this directory var randomised_brush_subdirectory_map : Dictionary = available_brush_file_information[1] # Map for subdirectories to non-randomised-brush files nyaa var nonrandomised_brush_subdirectory_map : Dictionary = available_brush_file_information[2] - + # Iterate over components and do stuff with them! nyaa # first for the main directory path... for subfile in main_directory_file_paths: if not (subfile in processed_basedir_paths): add_plain_brush( - current_main_directory.plus_file(subfile), + current_main_directory.plus_file(subfile), subfile.get_basename() ) processed_basedir_paths[subfile] = true - + # Iterate over the randomised brush files nyaa for randomised_subdir in randomised_brush_subdirectory_map: if not (randomised_subdir in randomised_brush_subdirectories): var full_paths := [] - # glue the proper path onto the single file names in the + # glue the proper path onto the single file names in the # random brush directory data system, so they can be # opened nya for non_extended_path in randomised_brush_subdirectory_map[randomised_subdir]: @@ -197,7 +197,7 @@ func import_brushes(priority_ordered_search_path: Array) -> void: # Now to iterate over the nonrandom brush files inside directories for nonrandomised_subdir in nonrandomised_brush_subdirectory_map: # initialise the set-map for this one if not already present :) - if not (nonrandomised_subdir in processed_subdir_paths): + if not (nonrandomised_subdir in processed_subdir_paths): processed_subdir_paths[nonrandomised_subdir] = {} # Get the paths within this subdirectory to check if they are # processed or not and if not, then process them. @@ -216,7 +216,7 @@ func import_brushes(priority_ordered_search_path: Array) -> void: ).get_basename()) # Mark this as a processed relpath processed_subdir_paths[nonrandomised_subdir][relative_path] = true - + diff --git a/Scripts/Palette/EditPalettePopup.gd b/Scripts/Palette/EditPalettePopup.gd index 7e495bcbc..35578398d 100644 --- a/Scripts/Palette/EditPalettePopup.gd +++ b/Scripts/Palette/EditPalettePopup.gd @@ -122,13 +122,13 @@ func rename_palette_file_with_priority_dirs(old_fname: String, new_fname: String ) if best_clone_location != null: usrwrite_dir.copy(best_clone_location, new_fname) - + func _on_EditPaletteSaveButton_pressed() -> void: if palette_name_edit.text != current_palette: Global.palettes.erase(current_palette) rename_palette_file_with_priority_dirs( - current_palette + ".json", + current_palette + ".json", palette_name_edit.text + ".json" ) current_palette = palette_name_edit.text diff --git a/Scripts/Palette/PaletteContainer.gd b/Scripts/Palette/PaletteContainer.gd index ef920bff6..d3691e434 100644 --- a/Scripts/Palette/PaletteContainer.gd +++ b/Scripts/Palette/PaletteContainer.gd @@ -158,7 +158,7 @@ func _load_palettes() -> void: Global.directory_module.ensure_xdg_user_dirs_exist() var search_locations = Global.directory_module.get_palette_search_path_in_order() var priority_ordered_files := get_palette_priority_file_map(search_locations) - + # Iterate backwards, so any palettes defined in default files # get overwritten by those of the same name in user files search_locations.invert() @@ -184,7 +184,7 @@ func _load_palettes() -> void: func get_palette_files(path : String ) -> Array: var dir := Directory.new() var results = [] - + if not dir.dir_exists(path): return [] @@ -211,7 +211,7 @@ func get_palette_files(path : String ) -> Array: # contains the (relative to the given directory) palette files # to load, excluding all ones already existing in higher-priority # directories. nya -# in particular, this also means you can run backwards on the result +# in particular, this also means you can run backwards on the result # so that palettes with the given palette name in the higher priority # directories override those set in lower priority directories :) func get_palette_priority_file_map(looking_paths: Array) -> Array: @@ -226,12 +226,12 @@ func get_palette_priority_file_map(looking_paths: Array) -> Array: if not maybe_to_add in working_file_set: to_add_files.append(maybe_to_add) working_file_set[maybe_to_add] = true - + final_list.append(to_add_files) return final_list - + # Locate the highest priority palette by the given relative filename -# If none is found in the directories, then do nothing and return +# If none is found in the directories, then do nothing and return # null func get_best_palette_file_location(looking_paths: Array, fname: String): # -> String: var priority_fmap : Array = get_palette_priority_file_map(looking_paths) @@ -240,7 +240,7 @@ func get_best_palette_file_location(looking_paths: Array, fname: String): # -> var the_files : Array = priority_fmap[i] if the_files.has(fname): return base_path.plus_file(fname) - + return null func save_palette(palette_name : String, filename : String) -> void: diff --git a/Scripts/XDGDataPaths.gd b/Scripts/XDGDataPaths.gd index 87d62df60..fe2b5026d 100644 --- a/Scripts/XDGDataPaths.gd +++ b/Scripts/XDGDataPaths.gd @@ -17,10 +17,6 @@ const config_subdir_name := "pixelorama" const palettes_data_subdirectory := "Palettes" const brushes_data_subdirectory := "Brushes" -# Declare member variables here. Examples: -# var a = 2 -# var b = "text" - # Get if we should use XDG standard or not nyaaaa func use_xdg_standard() -> bool: @@ -29,9 +25,6 @@ func use_xdg_standard() -> bool: # Previous was unreliable and buggy >.< nyaa return OS.get_name() == "X11" -# Called when the node enters the scene tree for the first time. -func _ready(): - pass func _init(): if use_xdg_standard(): @@ -43,7 +36,7 @@ func _init(): xdg_data_home = raw_xdg_data_home.plus_file( config_subdir_name ) - + # Create defaults xdg_data_dirs = [] raw_xdg_data_dirs = default_xdg_data_dirs @@ -51,7 +44,7 @@ func _init(): xdg_data_dirs.append( default_loc.plus_file(config_subdir_name) ) - + # Now check the XDG environment variables and if # present, replace the defaults with them! # See: https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html @@ -68,13 +61,13 @@ func _init(): xdg_data_dirs = [] for unapp_subdir in raw_xdg_data_dirs: xdg_data_dirs.append(unapp_subdir.plus_file(config_subdir_name)) - + else: raw_xdg_data_home = Global.root_directory xdg_data_home = raw_xdg_data_home.plus_file(config_subdir_name) raw_xdg_data_dirs = [] xdg_data_dirs = [] - + func append_file_to_all(basepaths: Array, subpath: String) -> Array: @@ -87,7 +80,7 @@ func append_file_to_all(basepaths: Array, subpath: String) -> Array: # Get search paths in order of priority func get_search_paths_in_order() -> Array: return [xdg_data_home] + xdg_data_dirs - + # Gets the paths, in order of search priority, for palettes. func get_palette_search_path_in_order() -> Array: var base_paths := get_search_paths_in_order() @@ -97,12 +90,12 @@ func get_palette_search_path_in_order() -> Array: func get_brushes_search_path_in_order() -> Array: var base_paths := get_search_paths_in_order() return append_file_to_all(base_paths, brushes_data_subdirectory) - + # Get the path that we are ok to be writing palettes to: func get_palette_write_path() -> String: return xdg_data_home.plus_file(palettes_data_subdirectory) - + # Get the path that we are ok to be writing brushes to: func get_brushes_write_path() -> String: return xdg_data_home.plus_file(brushes_data_subdirectory) @@ -114,7 +107,7 @@ func ensure_xdg_user_dirs_exist() -> void: # Ensure the main config directory exists. if not base_dir.dir_exists(xdg_data_home): base_dir.make_dir(xdg_data_home) - + var actual_data_dir := Directory.new() actual_data_dir.open(xdg_data_home) var palette_writing_dir := get_palette_write_path() @@ -126,10 +119,3 @@ func ensure_xdg_user_dirs_exist() -> void: if not actual_data_dir.dir_exists(brushes_writing_dir): print("Making directory %s" % [brushes_writing_dir]) actual_data_dir.make_dir(brushes_writing_dir) - - - - -# Called every frame. 'delta' is the elapsed time since the previous frame. -#func _process(delta): -# pass