Initial Android commit
This commit is contained in:
commit
1e2b80c13d
8521 changed files with 231475 additions and 0 deletions
83
addons/dialogic/Nodes/Anima/DialogicAnimaResources.gd
Normal file
83
addons/dialogic/Nodes/Anima/DialogicAnimaResources.gd
Normal 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(" ", "_")
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue