Initial Android commit

This commit is contained in:
OleSTEEP 2024-11-10 03:34:28 +03:00
commit 1e2b80c13d
8521 changed files with 231475 additions and 0 deletions

View file

@ -0,0 +1,83 @@
extends Node
class_name DialogicAnimaResources
const BASE_PATH: = "res://addons/dialogic/Nodes/Anima/animations/"
static func get_animation_script(animation_name:String):
var resource_file = get_animation_script_with_path(animation_name)
if resource_file:
return load(resource_file).new()
printerr("No animation found with name: ", animation_name)
return null
static func get_animation_script_with_path(animation_name:String)->String:
if not animation_name.ends_with(".gd"):
animation_name += ".gd"
animation_name = from_camel_to_snack_case(animation_name)
for file_name in get_available_animations():
if file_name is String and file_name.ends_with(animation_name):
return file_name
return ""
static func get_available_animations()->Array:
var list = _get_animations_list()
var filtered: = []
for file in list:
if file.find(".gd.") < 0:
filtered.push_back(file.replace(".gdc", ".gd"))
return filtered
static func _get_animations_list()->Array:
var files = _get_scripts_in_dir(BASE_PATH)
var filtered: = []
files.sort()
return files
static func _get_scripts_in_dir(path:String, files:Array = [])->Array:
var dir = Directory.new()
if dir.open(path) != OK:
return files
dir.list_dir_begin()
var file_name = dir.get_next()
while file_name != "":
if file_name != "." and file_name != "..":
if dir.current_is_dir():
_get_scripts_in_dir(path + file_name + "/", files)
else :
files.push_back(path + file_name)
file_name = dir.get_next()
return files
static func from_camel_to_snack_case(string:String)->String:
var result = PoolStringArray()
var is_first_char = true
for character in string:
if character == character.to_lower() or is_first_char:
result.append(character.to_lower())
else :
result.append("_" + character.to_lower())
is_first_char = false
return result.join("").replace(" ", "_")