class_name Aushaenge ## Eigene Aushänge: Menschen, die jemand am Schwarzen Brett selbst geschrieben ## hat. Überleben den Neustart, liegen als ConfigFile unter user://. static var PFAD := "user://aushaenge.cfg" const FELDER := ["name", "alter", "beruf", "traum", "geschichte", "woerter"] static func laden() -> Array: var cfg := ConfigFile.new() if cfg.load(PFAD) != OK: return [] var out: Array = [] for abschnitt in cfg.get_sections(): var pr: Dictionary = {"id": abschnitt} for f in FELDER: pr[f] = cfg.get_value(abschnitt, f, "" if f != "woerter" else []) pr["woerter"] = Array(pr["woerter"]) out.append(pr) return out ## Legt einen Aushang an oder überschreibt ihn. Gibt die id zurück. static func speichern(pr: Dictionary) -> String: var cfg := ConfigFile.new() cfg.load(PFAD) var id := str(pr.get("id", "")) if id == "": var n := 0 while cfg.has_section("eigen_%d" % n): n += 1 id = "eigen_%d" % n for f in FELDER: cfg.set_value(id, f, pr.get(f, "" if f != "woerter" else [])) cfg.save(PFAD) return id static func loeschen(id: String) -> void: var cfg := ConfigFile.new() if cfg.load(PFAD) != OK: return if cfg.has_section(id): cfg.erase_section(id) cfg.save(PFAD) static func alle_loeschen() -> void: var cfg := ConfigFile.new() cfg.save(PFAD) ## Was am Aushang fehlt, bevor er gilt. Leer heißt: alles da. static func pruefen(pr: Dictionary) -> Array: var fehler: Array = [] if str(pr.get("name", "")).strip_edges() == "": fehler.append("Name fehlt") if str(pr.get("traum", "")).strip_edges() == "": fehler.append("Traum fehlt") if not HumanDB.BERUF_TAGESTYP.has(str(pr.get("beruf", ""))): fehler.append("Beruf fehlt") var w: Array = pr.get("woerter", []) if w.size() < Woerter.MINDESTENS: fehler.append("mindestens %d Wörter (%d)" % [Woerter.MINDESTENS, w.size()]) return fehler