32 lines
1.1 KiB
GDScript
32 lines
1.1 KiB
GDScript
# editor/api_text.gd
|
|
@tool
|
|
class_name PokeApiText
|
|
extends RefCounted
|
|
|
|
static func names(entries : Array, languages : PackedStringArray) -> Dictionary:
|
|
var out := {}
|
|
for n in entries:
|
|
var lang : String = n["language"]["name"]
|
|
if lang in languages: out[lang] = n["name"]
|
|
return out
|
|
|
|
static func flavors(entries : Array, languages : PackedStringArray) -> Dictionary:
|
|
var out := {}
|
|
for e in entries: # les plus récentes sont à la fin et écrasent les anciennes
|
|
var lang : String = e["language"]["name"]
|
|
if lang in languages:
|
|
out[lang] = String(e["flavor_text"]).replace("\n", " ").replace("\f", " ")
|
|
return out
|
|
|
|
## Comme flavors(), mais pour les objets : la clé du texte est "text", pas "flavor_text".
|
|
static func item_flavors(entries : Array, languages : PackedStringArray) -> Dictionary:
|
|
var out := {}
|
|
for e in entries:
|
|
var lang_field : Variant = e.get("language")
|
|
if !(lang_field is Dictionary): continue
|
|
var lang : String = lang_field.get("name", "")
|
|
if lang in languages:
|
|
var text : String = String(e.get("text", "")).replace("\n", " ").replace("\f", " ")
|
|
out[lang] = text
|
|
return out
|