pokeapi_importer/editor/api_text.gd
2026-10-04 13:43:32 +02:00

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