1
0
Fork 0
mirror of https://github.com/Orama-Interactive/Pixelorama.git synced 2025-01-31 07:29:49 +00:00

Added MatheusPese & sapient-cogbag to contributors

Also some code space clearings & removed empty methods and comments in XDGDataPaths.gd
This commit is contained in:
OverloadedOrama 2020-04-13 01:40:26 +03:00
parent 0046856b0f
commit 354dffd98b
6 changed files with 55 additions and 67 deletions

View file

@ -27,6 +27,8 @@ func _ready() -> void:
contributors.create_item(contributor_root).set_text(0, " danielnaoexiste") 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, " Noah Burck (haonkrub)")
contributors.create_item(contributor_root).set_text(0, " luiq54") 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() var donors_root := donors.create_item()
donors.create_item(donors_root).set_text(0, " pcmxms") donors.create_item(donors_root).set_text(0, " pcmxms")

View file

@ -266,7 +266,7 @@ func _ready() -> void:
root_directory = OS.get_executable_path().get_base_dir() root_directory = OS.get_executable_path().get_base_dir()
# Load settings from the config file # Load settings from the config file
config_cache.load("user://cache.ini") config_cache.load("user://cache.ini")
# The fact that root_dir is set earlier than this is important # The fact that root_dir is set earlier than this is important
# XDGDataDirs depends on it nyaa # XDGDataDirs depends on it nyaa
directory_module = XDGDataPaths.new() directory_module = XDGDataPaths.new()
@ -275,7 +275,7 @@ func _ready() -> void:
transparent_background = ImageTexture.new() transparent_background = ImageTexture.new()
transparent_background.create_from_image(preload("res://Assets/Graphics/Canvas Backgrounds/Transparent Background Dark.png"), 0) transparent_background.create_from_image(preload("res://Assets/Graphics/Canvas Backgrounds/Transparent Background Dark.png"), 0)
image_clipboard = Image.new() image_clipboard = Image.new()
var root = get_tree().get_root() var root = get_tree().get_root()
control = find_node_by_name(root, "Control") control = find_node_by_name(root, "Control")
top_menu_container = find_node_by_name(control, "TopMenuContainer") top_menu_container = find_node_by_name(control, "TopMenuContainer")

View file

@ -3,9 +3,9 @@ extends Node
# Get hold of the brushes, including random brushes (subdirectories and % files # Get hold of the brushes, including random brushes (subdirectories and % files
# in them, non % files get loaded independently.) nyaaa # in them, non % files get loaded independently.) nyaaa
# Returns a list of [ # 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 # the randomised brush - if a directory contains no
# randomised files then it is not included in this. # randomised files then it is not included in this.
# }, # },
@ -14,25 +14,25 @@ extends Node
# that are not for randomised brushes. # 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 # in subdirectories allows different XDG_DATA_DIR overriding
# for each nyaa. # for each nyaa.
# #
# Returns null if the directory gave an error opening. # Returns null if the directory gave an error opening.
# #
func get_brush_files_from_directory(directory: String): # -> Array func get_brush_files_from_directory(directory: String): # -> Array
var base_png_files := [] # list of files in the base directory var base_png_files := [] # list of files in the base directory
var subdirectories := [] # list of subdirectories to process. 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 nonrandomised_subdir_files_map : Dictionary = {}
var main_directory : Directory = Directory.new() var main_directory : Directory = Directory.new()
var err := main_directory.open(directory) var err := main_directory.open(directory)
if err != OK: if err != OK:
return null return null
# Build first the list of base png files and all subdirectories to # Build first the list of base png files and all subdirectories to
# scan later (skip navigational . and ..) # scan later (skip navigational . and ..)
main_directory.list_dir_begin(true) 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": if fname.get_extension().to_lower() == "png":
print_debug("Found brush at '%s'" % [fname]) print_debug("Found brush at '%s'" % [fname])
base_png_files.append(fname) base_png_files.append(fname)
# go to next # go to next
fname = main_directory.get_next() fname = main_directory.get_next()
main_directory.list_dir_end() main_directory.list_dir_end()
# Now we iterate over subdirectories! # Now we iterate over subdirectories!
for subdirectory in subdirectories: for subdirectory in subdirectories:
var the_directory : Directory = Directory.new() var the_directory : Directory = Directory.new()
# Holds names of files that make this # Holds names of files that make this
# a component of a randomised brush ^.^ # a component of a randomised brush ^.^
var randomised_files := [] var randomised_files := []
# Non-randomise-indicated image files # Non-randomise-indicated image files
var non_randomised_files := [] var non_randomised_files := []
the_directory.open(directory.plus_file(subdirectory)) the_directory.open(directory.plus_file(subdirectory))
the_directory.list_dir_begin(true) the_directory.list_dir_begin(true)
var curr_file := the_directory.get_next() var curr_file := the_directory.get_next()
while curr_file != "": while curr_file != "":
# only do stuff if we are actually dealing with a file # only do stuff if we are actually dealing with a file
# and png one at that nya # and png one at that nya
@ -74,9 +74,9 @@ func get_brush_files_from_directory(directory: String): # -> Array
else: else:
non_randomised_files.append(curr_file) non_randomised_files.append(curr_file)
curr_file = the_directory.get_next() curr_file = the_directory.get_next()
the_directory.list_dir_end() the_directory.list_dir_end()
# Add these to the maps nyaa # Add these to the maps nyaa
if len(randomised_files) > 0: if len(randomised_files) > 0:
randomised_subdir_files_map[subdirectory] = randomised_files 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 # Add a randomised brush from the given list of files as a
# source. # source.
# The tooltip name is what shows up on the tooltip # The tooltip name is what shows up on the tooltip
# and is probably in this case the name of the containing # and is probably in this case the name of the containing
# randomised directory. # randomised directory.
func add_randomised_brush(fpaths : Array, tooltip_name : String) -> void: func add_randomised_brush(fpaths : Array, tooltip_name : String) -> void:
# Attempt to load the images from the file paths. # Attempt to load the images from the file paths.
var loaded_images : Array = [] var loaded_images : Array = []
for filen in fpaths: for filen in fpaths:
var image := Image.new() var image := Image.new()
var err := image.load(filen) var err := image.load(filen)
@ -101,19 +101,19 @@ func add_randomised_brush(fpaths : Array, tooltip_name : String) -> void:
image.convert(Image.FORMAT_RGBA8) image.convert(Image.FORMAT_RGBA8)
loaded_images.append(image) loaded_images.append(image)
print_debug("Loaded image from '%s'" % [filen]) print_debug("Loaded image from '%s'" % [filen])
# If any images were successfully loaded, then # If any images were successfully loaded, then
# we create the randomised brush button, copied # we create the randomised brush button, copied
# from find_brushes. # from find_brushes.
if len(loaded_images) > 0: # actually have images if len(loaded_images) > 0: # actually have images
# to use. # to use.
# take initial image... # take initial image...
var first_image : Image = loaded_images.pop_front() var first_image : Image = loaded_images.pop_front()
# The index which this random brush will be at # The index which this random brush will be at
var next_random_brush_index := Global.file_brush_container.get_child_count() var next_random_brush_index := Global.file_brush_container.get_child_count()
Global.custom_brushes.append(first_image) Global.custom_brushes.append(first_image)
Global.create_brush_button(first_image, Global.Brush_Types.RANDOM_FILE, tooltip_name) Global.create_brush_button(first_image, Global.Brush_Types.RANDOM_FILE, tooltip_name)
# # Process the rest # # Process the rest
@ -138,7 +138,7 @@ func add_plain_brush(path: String, tooltip_name: String) -> void:
# i.e. with an override system # i.e. with an override system
# We use a very particular override system here where, for randomised brushes # We use a very particular override system here where, for randomised brushes
# the directories containing them get overridden, but for nonrandomised files # 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 ^.^ # is on a file-by-file basis nyaaaa ^.^
func import_brushes(priority_ordered_search_path: Array) -> void: func import_brushes(priority_ordered_search_path: Array) -> void:
# Maps for files in the base directory (name : true) # 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 # 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. # i.e. once a filename has been dealt with, set it to true.
var processed_subdir_paths : Dictionary = {} var processed_subdir_paths : Dictionary = {}
# Sets of results of get_brush_files_from_directory # Sets of results of get_brush_files_from_directory
var all_available_paths : Array = [] var all_available_paths : Array = []
for directory in priority_ordered_search_path: for directory in priority_ordered_search_path:
all_available_paths.append(get_brush_files_from_directory(directory)) all_available_paths.append(get_brush_files_from_directory(directory))
# Now to process. Note these are in order of the # Now to process. Note these are in order of the
# priority, as intended nyaa :) # priority, as intended nyaa :)
for i in range(len(all_available_paths)): 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: if available_brush_file_information != null:
# The brush files in the main directory # The brush files in the main directory
var main_directory_file_paths : Array = available_brush_file_information[0] 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 # map for this directory
var randomised_brush_subdirectory_map : Dictionary = available_brush_file_information[1] var randomised_brush_subdirectory_map : Dictionary = available_brush_file_information[1]
# Map for subdirectories to non-randomised-brush files nyaa # Map for subdirectories to non-randomised-brush files nyaa
var nonrandomised_brush_subdirectory_map : Dictionary = available_brush_file_information[2] var nonrandomised_brush_subdirectory_map : Dictionary = available_brush_file_information[2]
# Iterate over components and do stuff with them! nyaa # Iterate over components and do stuff with them! nyaa
# first for the main directory path... # first for the main directory path...
for subfile in main_directory_file_paths: for subfile in main_directory_file_paths:
if not (subfile in processed_basedir_paths): if not (subfile in processed_basedir_paths):
add_plain_brush( add_plain_brush(
current_main_directory.plus_file(subfile), current_main_directory.plus_file(subfile),
subfile.get_basename() subfile.get_basename()
) )
processed_basedir_paths[subfile] = true processed_basedir_paths[subfile] = true
# Iterate over the randomised brush files nyaa # Iterate over the randomised brush files nyaa
for randomised_subdir in randomised_brush_subdirectory_map: for randomised_subdir in randomised_brush_subdirectory_map:
if not (randomised_subdir in randomised_brush_subdirectories): if not (randomised_subdir in randomised_brush_subdirectories):
var full_paths := [] 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 # random brush directory data system, so they can be
# opened nya # opened nya
for non_extended_path in randomised_brush_subdirectory_map[randomised_subdir]: 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 # Now to iterate over the nonrandom brush files inside directories
for nonrandomised_subdir in nonrandomised_brush_subdirectory_map: for nonrandomised_subdir in nonrandomised_brush_subdirectory_map:
# initialise the set-map for this one if not already present :) # 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] = {} processed_subdir_paths[nonrandomised_subdir] = {}
# Get the paths within this subdirectory to check if they are # Get the paths within this subdirectory to check if they are
# processed or not and if not, then process them. # processed or not and if not, then process them.
@ -216,7 +216,7 @@ func import_brushes(priority_ordered_search_path: Array) -> void:
).get_basename()) ).get_basename())
# Mark this as a processed relpath # Mark this as a processed relpath
processed_subdir_paths[nonrandomised_subdir][relative_path] = true processed_subdir_paths[nonrandomised_subdir][relative_path] = true

View file

@ -122,13 +122,13 @@ func rename_palette_file_with_priority_dirs(old_fname: String, new_fname: String
) )
if best_clone_location != null: if best_clone_location != null:
usrwrite_dir.copy(best_clone_location, new_fname) usrwrite_dir.copy(best_clone_location, new_fname)
func _on_EditPaletteSaveButton_pressed() -> void: func _on_EditPaletteSaveButton_pressed() -> void:
if palette_name_edit.text != current_palette: if palette_name_edit.text != current_palette:
Global.palettes.erase(current_palette) Global.palettes.erase(current_palette)
rename_palette_file_with_priority_dirs( rename_palette_file_with_priority_dirs(
current_palette + ".json", current_palette + ".json",
palette_name_edit.text + ".json" palette_name_edit.text + ".json"
) )
current_palette = palette_name_edit.text current_palette = palette_name_edit.text

View file

@ -158,7 +158,7 @@ func _load_palettes() -> void:
Global.directory_module.ensure_xdg_user_dirs_exist() Global.directory_module.ensure_xdg_user_dirs_exist()
var search_locations = Global.directory_module.get_palette_search_path_in_order() var search_locations = Global.directory_module.get_palette_search_path_in_order()
var priority_ordered_files := get_palette_priority_file_map(search_locations) var priority_ordered_files := get_palette_priority_file_map(search_locations)
# Iterate backwards, so any palettes defined in default files # Iterate backwards, so any palettes defined in default files
# get overwritten by those of the same name in user files # get overwritten by those of the same name in user files
search_locations.invert() search_locations.invert()
@ -184,7 +184,7 @@ func _load_palettes() -> void:
func get_palette_files(path : String ) -> Array: func get_palette_files(path : String ) -> Array:
var dir := Directory.new() var dir := Directory.new()
var results = [] var results = []
if not dir.dir_exists(path): if not dir.dir_exists(path):
return [] return []
@ -211,7 +211,7 @@ func get_palette_files(path : String ) -> Array:
# contains the (relative to the given directory) palette files # contains the (relative to the given directory) palette files
# to load, excluding all ones already existing in higher-priority # to load, excluding all ones already existing in higher-priority
# directories. nya # 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 # so that palettes with the given palette name in the higher priority
# directories override those set in lower priority directories :) # directories override those set in lower priority directories :)
func get_palette_priority_file_map(looking_paths: Array) -> Array: 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: if not maybe_to_add in working_file_set:
to_add_files.append(maybe_to_add) to_add_files.append(maybe_to_add)
working_file_set[maybe_to_add] = true working_file_set[maybe_to_add] = true
final_list.append(to_add_files) final_list.append(to_add_files)
return final_list return final_list
# Locate the highest priority palette by the given relative filename # 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 # null
func get_best_palette_file_location(looking_paths: Array, fname: String): # -> String: func get_best_palette_file_location(looking_paths: Array, fname: String): # -> String:
var priority_fmap : Array = get_palette_priority_file_map(looking_paths) 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] var the_files : Array = priority_fmap[i]
if the_files.has(fname): if the_files.has(fname):
return base_path.plus_file(fname) return base_path.plus_file(fname)
return null return null
func save_palette(palette_name : String, filename : String) -> void: func save_palette(palette_name : String, filename : String) -> void:

View file

@ -17,10 +17,6 @@ const config_subdir_name := "pixelorama"
const palettes_data_subdirectory := "Palettes" const palettes_data_subdirectory := "Palettes"
const brushes_data_subdirectory := "Brushes" 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 # Get if we should use XDG standard or not nyaaaa
func use_xdg_standard() -> bool: func use_xdg_standard() -> bool:
@ -29,9 +25,6 @@ func use_xdg_standard() -> bool:
# Previous was unreliable and buggy >.< nyaa # Previous was unreliable and buggy >.< nyaa
return OS.get_name() == "X11" return OS.get_name() == "X11"
# Called when the node enters the scene tree for the first time.
func _ready():
pass
func _init(): func _init():
if use_xdg_standard(): if use_xdg_standard():
@ -43,7 +36,7 @@ func _init():
xdg_data_home = raw_xdg_data_home.plus_file( xdg_data_home = raw_xdg_data_home.plus_file(
config_subdir_name config_subdir_name
) )
# Create defaults # Create defaults
xdg_data_dirs = [] xdg_data_dirs = []
raw_xdg_data_dirs = default_xdg_data_dirs raw_xdg_data_dirs = default_xdg_data_dirs
@ -51,7 +44,7 @@ func _init():
xdg_data_dirs.append( xdg_data_dirs.append(
default_loc.plus_file(config_subdir_name) default_loc.plus_file(config_subdir_name)
) )
# Now check the XDG environment variables and if # Now check the XDG environment variables and if
# present, replace the defaults with them! # present, replace the defaults with them!
# See: https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html # See: https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html
@ -68,13 +61,13 @@ func _init():
xdg_data_dirs = [] xdg_data_dirs = []
for unapp_subdir in raw_xdg_data_dirs: for unapp_subdir in raw_xdg_data_dirs:
xdg_data_dirs.append(unapp_subdir.plus_file(config_subdir_name)) xdg_data_dirs.append(unapp_subdir.plus_file(config_subdir_name))
else: else:
raw_xdg_data_home = Global.root_directory raw_xdg_data_home = Global.root_directory
xdg_data_home = raw_xdg_data_home.plus_file(config_subdir_name) xdg_data_home = raw_xdg_data_home.plus_file(config_subdir_name)
raw_xdg_data_dirs = [] raw_xdg_data_dirs = []
xdg_data_dirs = [] xdg_data_dirs = []
func append_file_to_all(basepaths: Array, subpath: String) -> Array: 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 # Get search paths in order of priority
func get_search_paths_in_order() -> Array: func get_search_paths_in_order() -> Array:
return [xdg_data_home] + xdg_data_dirs return [xdg_data_home] + xdg_data_dirs
# Gets the paths, in order of search priority, for palettes. # Gets the paths, in order of search priority, for palettes.
func get_palette_search_path_in_order() -> Array: func get_palette_search_path_in_order() -> Array:
var base_paths := get_search_paths_in_order() 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: func get_brushes_search_path_in_order() -> Array:
var base_paths := get_search_paths_in_order() var base_paths := get_search_paths_in_order()
return append_file_to_all(base_paths, brushes_data_subdirectory) return append_file_to_all(base_paths, brushes_data_subdirectory)
# Get the path that we are ok to be writing palettes to: # Get the path that we are ok to be writing palettes to:
func get_palette_write_path() -> String: func get_palette_write_path() -> String:
return xdg_data_home.plus_file(palettes_data_subdirectory) return xdg_data_home.plus_file(palettes_data_subdirectory)
# Get the path that we are ok to be writing brushes to: # Get the path that we are ok to be writing brushes to:
func get_brushes_write_path() -> String: func get_brushes_write_path() -> String:
return xdg_data_home.plus_file(brushes_data_subdirectory) 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. # Ensure the main config directory exists.
if not base_dir.dir_exists(xdg_data_home): if not base_dir.dir_exists(xdg_data_home):
base_dir.make_dir(xdg_data_home) base_dir.make_dir(xdg_data_home)
var actual_data_dir := Directory.new() var actual_data_dir := Directory.new()
actual_data_dir.open(xdg_data_home) actual_data_dir.open(xdg_data_home)
var palette_writing_dir := get_palette_write_path() 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): if not actual_data_dir.dir_exists(brushes_writing_dir):
print("Making directory %s" % [brushes_writing_dir]) print("Making directory %s" % [brushes_writing_dir])
actual_data_dir.make_dir(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