update
This commit is contained in:
65
scripts/aushaenge.gd
Normal file
65
scripts/aushaenge.gd
Normal file
@@ -0,0 +1,65 @@
|
||||
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
|
||||
Reference in New Issue
Block a user